码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 从无到有跑通KAPAO


    kapao工程:https://github.com/wmcnally/kapao

    论文地址:https://arxiv.org/abs/2111.08557

    由于之前没有接触过关键点的工作,所以我选择先下载作者提到的数据,将数据按照他要求的方式存放,然后通过运行的代码来查看整个工程的结果;

    使用kapao进行托盘目标检测和托盘目标的四个角点的检测;原理都还没有来得及查看,然后直接进行模型训练;

    处理过程的整体流程:

    1.将整个样本分成训练集和验证集合,通过txt文件,记载相关的的名字;

    1. """
    2. 将所有样本分拣为训练样本和测试样本
    3. """
    4. import argparse
    5. import os
    6. import math
    7. import random
    8. import shutil
    9. from tqdm import tqdm
    10. class Process:
    11. def __init__(self,args):
    12. self.imgs_dir = args.imgs_dir
    13. self.save_dir = args.save_dir
    14. self.ratio = args.ratio
    15. def check_path(self, chpath):
    16. if not os.path.exists(chpath):
    17. os.mkdir(chpath)
    18. def check_path_(self, chpath):
    19. if not os.path.exists(chpath):
    20. os.mkdir(chpath)
    21. else:
    22. paths = os.listdir(chpath)
    23. for path in paths:
    24. del_path = os.path.join(chpath, path)
    25. os.remove(del_path)
    26. def process_data(self):
    27. """
    28. 遍历所有文件夹随机挑取一定比例的样本作为测试样本,剩余的作为训练样本
    29. """
    30. paths = os.listdir(self.imgs_dir)
    31. txt_train = os.path.join(self.save_dir, 'trainval.txt')
    32. txt_test = os.path.join(self.save_dir, 'test.txt')
    33. f_train = open(txt_train, 'w', encoding='utf-8')
    34. f_test = open(txt_test, 'w', encoding='utf-8')
    35. num_paths = len(paths)
    36. test_num = math.floor(self.ratio*num_paths)
    37. list2 = [i for i in range(num_paths)]
    38. dic_num_path = {str(i): path for (i, path) in zip(range(num_paths), paths)}
    39. choice_num_list = random.sample(list2, test_num)
    40. for num_i, path in dic_num_path.items():
    41. img_path = dic_num_path[str(num_i)]
    42. old_img_path = os.path.join(self.imgs_dir, img_path)
    43. if int(num_i) in choice_num_list:
    44. f_test.write(old_img_path+'\n')
    45. else:
    46. f_train.write(old_img_path+'\n')
    47. f_test.close()
    48. f_train.close()
    49. def parse_args():
    50. parser = argparse.ArgumentParser()
    51. parser.add_argument('--imgs_dir',
    52. default='/home/XXXX/4tdisk/data/key_point/tray/ori/1672/imageset',
    53. help='图片文件所在文件夹')
    54. parser.add_argument('--save_dir',
    55. default='/home/XXXX/4tdisk/data/key_point/tray/process_ok/1672',
    56. help='结果存储路径'
    57. )
    58. parser.add_argument('--ratio',
    59. default=0.2,
    60. help='测试样本占所有图片的比例'
    61. )
    62. return parser.parse_args()
    63. def main(args):
    64. G = Process(args)
    65. G.process_data()
    66. if __name__ == '__main__':
    67. main(parse_args())
  • 相关阅读:
    pytest + yaml 框架 -62.支持yaml和json2种格式用例
    基础算法--双指针算法
    WMS仓库管理系统的应用场景有哪些?
    cpp学习笔记:STL queue容器
    JAVA毕业设计高校勤工助学管理系统计算机源码+lw文档+系统+调试部署+数据库
    Linux命令入门教程(三):文件基础篇
    EN 13969防水用柔性薄板.沥青防潮薄板—CE认证
    MyBatis 学习(四)之 SQL 映射文件
    【已解决】Linux服务器安装JDK
    文献速递:深度学习肝脏肿瘤诊断---基于深度学习的表型分类重新划分联合肝细胞胆管癌
  • 原文地址:https://blog.csdn.net/qq_22764813/article/details/126761775
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号