532
社区成员
保姆级代码教程: github.com/TommyZihao/MMPose_Tutorials
使用OpenMMLab开源目标检测算法库MMDetection,分别训练Faster R CNN和RTMDet的三角板目标检测算法。 在测试集上评估精度,预测图像、视频、摄像头实时画面。 目标检测预测框,用于后续Top-Down关键点检测算法。
下载数据 -> 训练模型 -> 验证模型
需要同时安装MMPose 和MMdetection。
python demo/topdown_demo_with_mmdet.py \
demo/mmdetection_cfg/faster_rcnn_r50_fpn_coco.py \
https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth \
projects/rtmpose/rtmpose/body_2d_keypoint/rtmpose-s_8xb256-420e_coco-256x192.py \
https://download.openmmlab.com/mmpose/v1/projects/rtmpose/rtmpose-s_simcc-aic-coco_pt-aic-coco_420e-256x192-fcb2599b_20230126.pth \
--input data/test/multi-person.jpeg \
--output-root outputs/B1_RTM_1 \
--device cuda:0 \
--bbox-thr 0.5 \
--kpt-thr 0.5 \
--nms-thr 0.3 \
--radius 8 \
--thickness 4 \
--draw-bbox \
--draw-heatmap \
--show-kpt-idx
python demo/topdown_demo_with_mmdet.py \
demo/mmdetection_cfg/faster_rcnn_r50_fpn_coco.py \
https://download.openmmlab.com/mmdetection/v2.0/faster_rcnn/faster_rcnn_r50_fpn_1x_coco/faster_rcnn_r50_fpn_1x_coco_20200130-047c8118.pth \
configs/body_2d_keypoint/topdown_heatmap/coco/td-hm_hrnet-w32_8xb64-210e_coco-256x192.py \
https://download.openmmlab.com/mmpose/top_down/hrnet/hrnet_w32_coco_256x192-c78dce93_20200708.pth \
--input data/test/mother_wx.mp4 \
--output-root outputs/B1_HRNet_2 \
--device cuda:0 \
--bbox-thr 0.5 \
--kpt-thr 0.2 \
--nms-thr 0.3 \
--radius 5 \
--thickness 2 \
--draw-bbox \
--draw-heatmap \
--show-kpt-idx
获取配置文件:
Faster-RCNN
https://zihao-openmmlab.obs.myhuaweicloud.com/20220610-mmpose/triangle_dataset/faster_r_cnn_triangle.py
RTMDet-tiny
https://zihao-openmmlab.obs.myhuaweicloud.com/20220610-mmpose/triangle_dataset/rtmdet_tiny_triangle.py
获取COCO标注的数据:
Triangle_215_Keypoint_coco$ tree -L 1
.
├── images
├── train_coco.json
└── val_coco.json
MMPose
https://zihao-openmmlab.obs.cn-east-3.myhuaweicloud.com/20220610-mmpose/triangle_dataset/rtmpose-s_triangle_8xb256-420e_coco-256x192.py
MMdetection 训练
python tools/train.py data/rtmdet_tiny_triangle.py
训练日志文件在
# 日志文件路径
log_path = 'work_dirs/faster_r_cnn_triangle/20230603_120659/vis_data/scalars.json'
模型精简转换
# RTMDet-tiny
!python tools/model_converters/publish_model.py \
work_dirs/rtmdet_tiny_triangle/epoch_200.pth \
checkpoint/rtmdet_tiny_triangle_epoch_200_202305120847.pth
训练RTMPose
python tools/train.py data/rtmpose-s_triangle_8xb256-420e_coco-256x192.py
检测(python)
# RTMDet 三角板检测
detector = init_detector(
'data/rtmdet_tiny_triangle.py',
'checkpoint/rtmdet_tiny_triangle_epoch_200_202305120847-3cd02a8f.pth',
device=device
)
pose_estimator = init_pose_estimator(
'data/rtmpose-s_triangle_8xb256-420e_coco-256x192.py',
'checkpoint/rtmpose_s_triangle_300-34bfaeb2_20230512.pth',
device=device,
cfg_options={'model': {'test_cfg': {'output_heatmaps': True}}}
)
init_default_scope(detector.cfg.get('default_scope', 'mmdet'))
# 获取目标检测预测结果
detect_result = inference_detector(detector, img_path)
# 置信度
detect_result.pred_instances.scores
# 框坐标:左上角X坐标、左上角Y坐标、右下角X坐标、右下角Y坐标
detect_result.pred_instances.bboxes
pred_instance = detect_result.pred_instances.cpu().numpy()
bboxes = np.concatenate((pred_instance.bboxes, pred_instance.scores[:, None]), axis=1)
bboxes = bboxes[np.logical_and(pred_instance.labels == 0, pred_instance.scores > CONF_THRES)]
bboxes = bboxes[nms(bboxes, 0.3)][:, :4].astype('int')
可视化
# 半径
pose_estimator.cfg.visualizer.radius = 50
# 线宽
pose_estimator.cfg.visualizer.line_width = 20
visualizer = VISUALIZERS.build(pose_estimator.cfg.visualizer)
# 元数据
visualizer.set_dataset_meta(pose_estimator.dataset_meta)
img = mmcv.imread(img_path)
img = mmcv.imconvert(img, 'bgr', 'rgb')
img_output = visualizer.add_datasample(
'result',
img,
data_sample=data_samples,
draw_gt=False,
draw_heatmap=True,
draw_bbox=True,
show=False,
show_kpt_idx=True,
wait_time=0,
out_file='outputs/G3_visualizer.jpg',
kpt_thr=0.3
)
plt.figure(figsize=(10, 10))
plt.imshow(img_output)
plt.show()
学术编研物联网学术会议学术英语AP外文学术期刊网学术道德 书籍英文学术期刊网站九一学术工业工程学术论文世界权威学术杂志谷歌学术 endnote旅游管理学术研究生2017年国际学术会议csc 学术成果学术交流通知编剧学术语学术出版小说学术与政治 txt学术类理论ppt学术期刊增刊是什么it学术造假案例恪守学术规范与学术道德学术会议意义学术文献样板学术书籍出版社排名学术副业库国内权威学术期刊学术采样学术讲座新闻稿范文九一学术上海市学术带头人学术杂志网骗为 学术的一生google 学术 引用国家权威学术期刊参考名录百度学术联系申请学术部学术道德 书籍学术ppt背景图片学术论坛是核心期刊吗青岛共享学术学术 新年祝福翻译学术型硕士百度学术-文献互助学术道德研究与学术规范医学交班医学术语旧学术学术会议汇总中国评论学术出版社学术研究学风包括学术论文的格式规范百度学术搜索运营2017年广州学术会议北京谷歌学术学术期刊在出版论文前学术会 英文研究生 专业和学术雅思考试学术类 培训类百度学术 endnote教育类学术期刊学术性app赶学术学术上如虎添翼学术是民主易配软装学术中心腹腔镜学术学术凳c类及以上学术期刊百度学术型ipad学术委员会秘书长幼儿园园长的学术报告2017检验医学学术会议百度学术查文献学术与政治 韦伯医药学术会议邀请函学术论文报告ppt剑桥学术中心预科学术笔译考试百度学术写作软件什么是科学术语学术带头人 培养计划窦文涛学术深圳大学 学术曹进德抄袭他人学术中国政法大学 学术新人学术道德与学术规范的故事学术论文封面模板学术腐博士论文改成学术专著学术论文怎么算抄袭民国学术经典大学英语学术版全国一级学术刊物学术交流的重要性课题的学术思想学术不端文药物化学学术会议包装设计学术价值百度学术官网活动学术 学道2017世界大学学术排名2016学术论坛期刊学术的创造中国学术会议文献数据库学术登徒子邯郸学术会华南理工学术学术讲坛哲学社会科学学术为学术而学术翻译韦伯学术型硕士的优势微软学术 搜索中国房地产学术研讨会谷歌怎么学术搜索2017香港学术会议学术文化节的口号学术邦社区学术动画平台学术霸道简称济南学术会议学术新人 中国政法心血管学术会议2016国际学术会议google学术检索式省部级新闻类学术期刊计算机专业学术论文学术与科研的区别社会科学类学术论文南开大学学术系统ibm学术全称学术资产人间学术学术讲坛议程谷歌学术不能用兄贵在哪个学术学术成果怎么填全国泌尿外科学术会议学术剽窃 定义学术论文常用句型学术专著哪个出版社好医学学术会议流程学术性的讲座学术讲座和学术沙龙的区别药品学术ppt学术期刊影响力指数acgbox学术搜索国际眼科学和视光学学术会议民生周刊学术版国学与现代学术 pdf百度学术 百度文库学术独立 学术自由学术不端生肖学术期刊编辑收入学术英语 同济学术论文结构要素学术会议 一稿多投幼儿园园长的学术报告学术海报模板免费下载学术性著作ft学术含义区块链学术会议如何准备学术会议凝练学术概念GOOGLE学术翻译app学术造假 复旦学术论文封面制作学术出版中级学术权杖造型雅思报名学术类培训类走学术学术期刊参考文献学术委员会名单学术黑社会学术委员会研究香港学术期刊网学术理论与探索中国物理学术年会北京协和学术会堂学术会议 海口学术道德 学术委员会学术 EPUB 微盘方舟子 学术打假全国变态反应学术会议昌明传统学术夫学术者天下之公器最近疫苗学术中国电影资料馆学术放映学术会议晚宴词学术英语unit9国际学术交流英语答案梁思成的学术民国出版 学术学术理论期刊三联书店 学术前沿系列全球学术快报破解美术学术报告海军学术谷歌学术glgoo怎么用ppt做学术海报学术论文写作软件学术探索 版面费学术答辩PPT模板网站