五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

大象機(jī)械臂mechArm pi人臉識(shí)別項(xiàng)目

2023-01-10 14:43 作者:大象機(jī)器人  | 我要投稿

看過鋼鐵俠的人都知道里面的賈維斯在幫助托尼斯塔克制作裝備的時(shí)候,有許多械臂提供幫助制作裝備,讓裝備的制作提高了效率。賈維斯是一個(gè)超級(jí)強(qiáng)大的人工智能系統(tǒng),有了它的幫助如魚的水。我腦海中浮現(xiàn)出來一個(gè)想法,讓機(jī)械臂末端實(shí)現(xiàn)人臉識(shí)別和跟蹤的功能,也有看到有人實(shí)現(xiàn)了機(jī)械臂末端物體的動(dòng)態(tài)跟蹤,看著這個(gè)項(xiàng)目好像很容易實(shí)現(xiàn),讓我來試一試吧!



項(xiàng)目設(shè)備

本次項(xiàng)目需要的設(shè)備在下表格里。



mechArm 270-Pi


這是一款大象機(jī)器人生產(chǎn)的小六軸機(jī)械臂,以樹莓派4B為微處理器,ESP32為輔助控制,結(jié)構(gòu)是中心對(duì)稱結(jié)構(gòu)(仿工業(yè)結(jié)構(gòu))。mechArm 270-Pi本體重量1kg, 負(fù)載250g,工作半徑270mm,設(shè)計(jì)緊湊便攜,小巧但功能強(qiáng)大,操作簡(jiǎn)單,能與人協(xié)同、安全工作。





mechArm 的資料豐富,提供了許多python的api接口可以方便提供給我來進(jìn)行使用。它的末端的接口規(guī)格都可以從官網(wǎng)獲取到資料,可以使用3d打印技術(shù)設(shè)計(jì)一款合適的設(shè)備。


計(jì)算機(jī)視覺


USB無畸變鏡頭

這里是攝像頭的參數(shù),主要是用于人臉識(shí)別。




項(xiàng)目流程介紹


整體項(xiàng)目的流程圖


這個(gè)項(xiàng)目的流程如下圖所示,最主要的是解決OpenCV的人臉識(shí)別功能和機(jī)械臂手眼標(biāo)定是選擇eye in hand 還是eye to hand。



接下來我將簡(jiǎn)單介紹一下這兩個(gè)功能有什么作用在項(xiàng)目當(dāng)中。

OpenCV-人臉識(shí)別


OpenCV的全名是Open Source Computer Vision Library,是一個(gè)跨平臺(tái)的電腦視覺庫。它輕量級(jí)而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。


人臉識(shí)別即程序?qū)斎氲膱D像進(jìn)行判別是否有人臉,并識(shí)別出有人臉的圖像所對(duì)應(yīng)的人。我們常說的人臉識(shí)別一般包含了人臉檢測(cè)人臉識(shí)別兩部分。


人臉檢測(cè)中,其主要任務(wù)是構(gòu)造能夠區(qū)分包含人臉實(shí)例和不包含人臉實(shí)例的分類器。

opencv中提供了三種訓(xùn)練好的級(jí)聯(lián)分類器。級(jí)聯(lián)分類器顧名思義即通過不同的特征進(jìn)行一步步篩選,最終得出所屬的分類,它將一個(gè)復(fù)雜的分類問題拆解為一個(gè)個(gè)簡(jiǎn)單的分類問題,隨著級(jí)聯(lián)條件的判斷,能夠一步步篩出大量的負(fù)樣本,極大的提升了后面分類的速度。


opencv人臉識(shí)別庫是開源的,還能夠支持python的接口,可以直接進(jìn)行調(diào)用。


這里是分類器的下載地址:http://face-rec.org/databases/



手眼標(biāo)定


手眼標(biāo)定實(shí)際上就是為了讓機(jī)械臂知道相機(jī)拍出來的物體相對(duì)于機(jī)械臂在什么位置,換一種說法就是建立相機(jī)坐標(biāo)系與機(jī)械臂坐標(biāo)系的映射關(guān)系。

有兩種方式

一種是eye to hand,眼在手外面,就是將相機(jī)固定在機(jī)械臂外面。



由于眼在手外標(biāo)定時(shí),Base坐標(biāo)系和Cam坐標(biāo)系的位置是固定的,因此眼在手外主要是求這兩個(gè)坐標(biāo)系的關(guān)系。


另一種是eye in hand,眼在手上,就是將相機(jī)固定在機(jī)械臂末端。


相機(jī)坐標(biāo)系和工具坐標(biāo)系的位置是相對(duì)不變的。因此,標(biāo)定的就是cam坐標(biāo)系和tool坐標(biāo)系的關(guān)系。


項(xiàng)目開始

python對(duì)mechArm的控制

pymycobot 是用python控制mechArm的庫,可以直接調(diào)用里面的方法。

介紹幾個(gè)主要的方法:

release_all_servos()

release all robot arms

get_angles()

get the degree of all joints.

send_angle(id, degree, speed)

Send one degree of joint to robot arm.

send_angles(degrees, speed)

Send the degrees of all joints to robot arm.

degrees: a list of degree value(List[float]), length 6 or 4.

speed: (int) 0 ~ 100


from pymycobot.mycobot import MyCobot
import time


mc = MyCobot('/dev/ttyAMA0',1000000)
time.sleep(4)
for count in range(2):
mc.send_angles([0,0,0,0,0,0],70)
time.sleep(2)
mc.send_angles([0,38.32,(-6.76),10.01,99.22,(-19.77)],70)
time.sleep(2)
mc.send_angles([(-13.18),(-22.14),17.66,147.12,99.22,(-19.77)],70)
time.sleep(2)
mc.send_angles([98.43,(-2.98),(-95.88),161.01,(-1.23),(-19.77)],70)
time.sleep(2)
print(mc.get_angles())
print(mc.get_coords())
mc.send_angles([0,0,0,0,0,0],70)


視頻演示

https://www.bilibili.com/video/BV1VW4y1M7Gv/?vd_source=dd6f4a47482e4e14e33125a26c155808


mechArm Pi還是可以很輕易上手的一款機(jī)械臂操控性很強(qiáng)。


接下來我們來研究一下如何實(shí)現(xiàn)人臉識(shí)別功能。


openCV 人臉識(shí)別的代碼

在前面我介紹到了分類器,讓我來演示一下大概的流程是怎么樣的。


執(zhí)行一下代碼來看一下效果


import CV2
import matplotlib.pyplot as plt
import time

def video_info():
# Loading classifiers
face_cascade = CV2.CascadeClassifier('haarcascade_frontalface_default.xml')

# Input video stream
cap = CV2.VideoCapture(0)
# To use a video file as input
#cap = CV2.VideoCapture('demo.mp4')

while True:
_, img = cap.read()
# Conversion to greyscale
gray = CV2.cvtColor(img, CV2.COLOR_BGR2GRAY)
# Detecting faces
faces = face_cascade.detectMultiScale(gray, 1.1, 4)
# Drawing the outline
for (x, y, w, h) in faces:
CV2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)
center_x = (x+w-x)//2+x
center_y = (y+h-y)//2+y
CV2.circle(img,(center_x,center_y),10,(0,255,255),2)

# Display effects
CV2.imshow('img', img)
k = CV2.waitKey(30) & 0xff
if k==27:
break
cap.release()



不得不說,opencv鍛煉的分類器是十分強(qiáng)大的!很快速的就識(shí)別出來了人臉。

就這樣我完成了前兩項(xiàng)技術(shù)的問題:機(jī)械臂的基礎(chǔ)操作人臉識(shí)別功能的復(fù)現(xiàn)。手眼標(biāo)定在查詢資料的時(shí)候遇到了困難,在eye in hand 當(dāng)中換算坐標(biāo)的時(shí)候出現(xiàn)了一些問題,短時(shí)間沒有辦法能夠解決,決定去查詢更多的資料再來跟大家分享。

總結(jié)

這次記錄的項(xiàng)目到這里就結(jié)束了,因?yàn)橐恍┘夹g(shù)上的原因,手眼標(biāo)定涉及的知識(shí)面比較廣,需要查詢?cè)S多資料和尋求多方面的幫助。待我歸來之時(shí),我的項(xiàng)目必將成功!如果你喜歡這篇文章的話,點(diǎn)贊留言支持我!

我們下次再見,很快就會(huì)回來的。



大象機(jī)械臂mechArm pi人臉識(shí)別項(xiàng)目的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
正阳县| 浮山县| 永仁县| 昌江| 梁河县| 宜丰县| 揭阳市| 喀喇| 封开县| 合阳县| 武鸣县| 许昌县| 息烽县| 佛坪县| 高要市| 梨树县| 安龙县| 天等县| 厦门市| 和田县| 通城县| 颍上县| 普安县| 饶平县| 泸州市| 钟山县| 嵩明县| 永川市| 唐海县| 都兰县| 万宁市| 南宁市| 班戈县| 松滋市| 清丰县| 甘南县| 孝义市| 乐陵市| 宁国市| 云南省| 青铜峡市|