0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

大象机械臂mechArm pi人脸识别项目

大象机器人科技 来源:大象机器人科技 作者:大象机器人科技 2023-01-10 14:36 次阅读

看过钢铁侠的人都知道里面的贾维斯在帮助托尼斯塔克制作装备的时候,有许多械臂提供帮助制作装备,让装备的制作提高了效率。贾维斯是一个超级强大的人工智能系统,有了它的帮助如鱼的水。我脑海中浮现出来一个想法,让机械臂末端实现人脸识别和跟踪的功能,也有看到有人实现了机械臂末端物体的动态跟踪,看着这个项目好像很容易实现,让我来试一试吧!

项目设备

本次项目需要的设备在下表格里。

pYYBAGO9B4aAXltCAABB6UNljYU378.jpg

mechArm 270-Pi

这是一款大象机器人生产的小六轴机械臂,以树莓派4B为微处理器ESP32为辅助控制,结构是中心对称结构(仿工业结构)。mechArm 270-Pi本体重量1kg, 负载250g,工作半径270mm,设计紧凑便携,小巧但功能强大,操作简单,能与人协同、安全工作。

poYBAGO9B4iAAS7dAAIncDlATz8140.jpgpYYBAGO9B4iAFqx7AAHEm2LaPI8283.jpg

mechArm 的资料丰富,提供了许多python的api接口可以方便提供给我来进行使用。它的末端的接口规格都可以从官网获取到资料,可以使用3d打印技术设计一款合适的设备。

计算机视觉

USB无畸变镜头

这里是摄像头的参数,主要是用于人脸识别。

poYBAGO9B4mAX1ydAACmFwT5Yg4495.jpg

项目流程介绍

整体项目的流程图

这个项目的流程如下图所示,最主要的是解决OpenCV的人脸识别功能和机械臂手眼标定是选择eye in hand 还是eye to hand。

pYYBAGO9B4mAIjRxAABjksYfm1o472.jpg

接下来我将简单介绍一下这两个功能有什么作用在项目当中。

OpenCV-人脸识别

poYBAGO9B4qATYtFAAAN6Vn7EPE660.jpg

OpenCV的全名是Open Source Computer Vision Library,是一个跨平台的电脑视觉库。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法

人脸识别即程序对输入的图像进行判别是否有人脸,并识别出有人脸的图像所对应的人。我们常说的人脸识别一般包含了人脸检测人脸识别两部分。

人脸检测中,其主要任务是构造能够区分包含人脸实例和不包含人脸实例的分类器。

opencv中提供了三种训练好的级联分类器。级联分类器顾名思义即通过不同的特征进行一步步筛选,最终得出所属的分类,它将一个复杂的分类问题拆解为一个个简单的分类问题,随着级联条件的判断,能够一步步筛出大量的负样本,极大的提升了后面分类的速度。

opencv人脸识别库是开源的,还能够支持python的接口,可以直接进行调用。

这里是分类器的下载地址:http://face-rec.org/databases/



手眼标定

手眼标定实际上就是为了让机械臂知道相机拍出来的物体相对于机械臂在什么位置,换一种说法就是建立相机坐标系与机械臂坐标系的映射关系。

有两种方式

一种是eye to hand,眼在手外面,就是将相机固定在机械臂外面。

pYYBAGO9B4qASTp9AAAd220YtjA771.jpg

由于眼在手外标定时,Base坐标系和Cam坐标系的位置是固定的,因此眼在手外主要是求这两个坐标系的关系。

另一种是eye in hand,眼在手上,就是将相机固定在机械臂末端。

poYBAGO9B4qALX4cAAAiDg9gqwc219.jpg

相机坐标系和工具坐标系的位置是相对不变的。因此,标定的就是cam坐标系和tool坐标系的关系。

项目开始

python对mechArm的控制

pymycobot 是用python控制mechArm的库,可以直接调用里面的方法。

介绍几个主要的方法:

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)

mechArm Pi还是可以很轻易上手的一款机械臂操控性很强。

接下来我们来研究一下如何实现人脸识别功能。

openCV 人脸识别的代码

在前面我介绍到了分类器,让我来演示一下大概的流程是怎么样的。

pYYBAGO9B4uAfodeAAAuHDrKCMA868.jpg

执行一下代码来看一下效果

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()

poYBAGO9B4uAemqhAADDG-kVW_w307.jpg

不得不说,opencv锻炼的分类器是十分强大的!很快速的就识别出来了人脸。

就这样我完成了前两项技术的问题:机械臂的基础操作人脸识别功能的复现。手眼标定在查询资料的时候遇到了困难,在eye in hand 当中换算坐标的时候出现了一些问题,短时间没有办法能够解决,决定去查询更多的资料再来跟大家分享。

总结

这次记录的项目到这里就结束了,因为一些技术上的原因,手眼标定涉及的知识面比较广,需要查询许多资料和寻求多方面的帮助。待我归来之时,我的项目必将成功!如果你喜欢这篇文章的话,点赞留言支持我!

我们下次再见,很快就会回来的。

审核编辑黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人脸识别
    +关注

    关注

    76

    文章

    4012

    浏览量

    81877
  • 机械臂
    +关注

    关注

    12

    文章

    513

    浏览量

    24565
收藏 人收藏

    评论

    相关推荐

    #硬声创作季 人脸识别项目:12.人脸识别

    人工智能人脸识别识别人脸识别系统
    Mr_haohao
    发布于 :2022年10月09日 15:38:43

    大象鼻子启发,研制出的万向自由度的机械

    ``受大象鼻子启发,研制出的万向自由度的机械,可以完成更柔性的工作``
    发表于 10-19 14:36

    【MYD-Y6ULX申请】基于摄像头的人脸识别项目

    项目名称:基于摄像头的人脸识别项目试用计划:申请理由:本人在嵌入式领域有两年多的学习和开发经验,想借助MYD-Y6ULX实现基于摄像头的人脸识别
    发表于 01-30 11:25

    【FPGA开发者项目连载】Gowin Minstar做机械视觉处理的机械

    项目本来设想是使用高云 ministar 开发板。制做5640摄像头模块的图像处理并使用高云 ministar内嵌ARM硬核处理器做机械控制分拣垃圾的装置。但奈何才学疏浅ZYNQ的结构不会使用,只好
    发表于 05-11 21:48

    myAGV移动机器人+mechArm六轴机械,开源复合机器人开发与实践

    、案例的实现:将远距离的木块通过myAGV进行移动,再通过mechArm夹爪,夹取木块来进行整理 正文 1 、介绍 我们这章节的内容是将协作性机械打破距离上的限制,跟移动机器人(myAGV)相连接,实现一个案
    的头像 发表于 09-27 18:42 1475次阅读
    myAGV移动机器人+<b class='flag-5'>mechArm</b>六轴<b class='flag-5'>机械</b><b class='flag-5'>臂</b>,开源复合机器人开发与实践

    Arduino Nano 33 BLE Sense的语音识别项目

    电子发烧友网站提供《Arduino Nano 33 BLE Sense的语音识别项目.zip》资料免费下载
    发表于 12-07 09:32 3次下载
    Arduino Nano 33 BLE Sense的语音<b class='flag-5'>识别项目</b>

    大象机器人推出桌面高精度机械ultraArm,配五大套装,助力最燃AI视觉玩法

    2020年,为了让更多人学习机械知识,我们推出了世界上最小的6轴机器人手臂:myCobot,之后陆续推出码垛机械mypalletizer,小六轴
    发表于 01-04 13:49 673次阅读

    如何完成机械的运动控制模块

    怎么控制机械的基本运动和人脸识别是如何实现的,在这里就不再复述了,本篇的内容主要是介绍是如何完成运动控制模块的。 使用到的设备 mechArm
    的头像 发表于 02-10 16:07 1732次阅读
    如何完成<b class='flag-5'>机械</b><b class='flag-5'>臂</b>的运动控制模块

    眼神科技独家中标渤海银行人脸识别项目

    这并不是眼神科技公司第一次中标渤海银行项目。眼神科技提供的生物识别统一认证平台已于2015年在渤海银行正式上市,构建了多母式生物识别场景生态。此次中标渤海银行面部识别项目,是对双方合作
    的头像 发表于 06-12 09:41 1403次阅读

    自动化革命:大象机器人的Mercury A1机械

    引言 大象机器人的Mercury系列,是面向工业自动化和智能制造的新型机械产品线。这些机械不仅在设计上创新,还在材料选择上使用了碳纤维、
    的头像 发表于 01-15 14:41 721次阅读
    自动化革命:<b class='flag-5'>大象</b>机器人的Mercury A1<b class='flag-5'>机械</b><b class='flag-5'>臂</b>

    使用ChatGPT学习大象机器人六轴协作机械mechArm

    调试的过程中,出现了一些问题,在识别收拾的时候,它是一直识别,这就意味着如果在1s中内识别了10次的话,会给机械发送10个命令,这样肯定不
    的头像 发表于 01-31 14:39 663次阅读
    使用ChatGPT学习<b class='flag-5'>大象</b>机器人六轴协作<b class='flag-5'>机械</b><b class='flag-5'>臂</b><b class='flag-5'>mechArm</b>!

    项目分享|基于ELF 1开发板的远程监测及人脸识别项目

    今天非常荣幸地向各位小伙伴分享一个由共创社成员完成的远程监测及人脸识别项目,该项目依托ELF1开发板为核心硬件平台,构建了一套完整的视频监控系统,并在此基础上集成了人脸
    的头像 发表于 03-13 16:41 522次阅读
    <b class='flag-5'>项目</b>分享|基于ELF 1开发板的远程监测及<b class='flag-5'>人脸</b><b class='flag-5'>识别项目</b>

    智能机械人脸识别特效丨国产Cortex-A55人工智能实验箱案例分享

    智能机械人脸识别特效丨国产Cortex-A55人工智能实验箱案例分享
    的头像 发表于 08-30 13:03 489次阅读
    智能<b class='flag-5'>机械</b><b class='flag-5'>臂</b><b class='flag-5'>人脸</b><b class='flag-5'>识别</b>特效丨国产Cortex-A55人工智能实验箱案例分享

    ElfBoard开源项目|车牌识别项目技术文档

    车牌识别项目基于百度智能云平台,旨在利用其强大的OCR服务实现车牌号码的自动识别。选择百度智能云的原因是其高效的API接口和稳定的服务质量,能够帮助开发者快速实现车牌识别应用。这个开源项目
    的头像 发表于 12-06 10:30 246次阅读
    ElfBoard开源<b class='flag-5'>项目</b>|车牌<b class='flag-5'>识别项目</b>技术文档

    ElfBoard开源项目|百度智能云平台的人脸识别项目

    百度智能云平台的人脸识别项目,旨在利用其强大的人脸识别服务实现自动人脸识别。选择百度智能云的原因
    的头像 发表于 12-24 10:54 115次阅读
    ElfBoard开源<b class='flag-5'>项目</b>|百度智能云平台的<b class='flag-5'>人脸</b><b class='flag-5'>识别项目</b>