码农知识堂 - 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())
  • 相关阅读:
    机器学习-特征选择:使用Lassco回归精确选择最佳特征
    paddle开发框架学习
    监控易:IT基础资源监控的解决方案和价值
    css 让文字进行竖着书写, 附带个小知识,行内块元素添加文字之后底部对不齐的问题
    Python 自动化教程(4) : 自动生成PPT文件 Part 2 (干货)
    在 SpringBoot 项目中使用 Swagger 接口文档演示
    Linux系统使用宝塔面板安装MySQL服务并实现公网远程访问本地数据库【内网穿透】
    MySQL中的锁机制、MyISAM表锁、MyISAM表级锁争用情况、MyISAM并发插入Concurrent Inserts、MyISAM的锁调度
    图文详解Linux基础经典教程(08)——CentOS安装MySQL数据库
    Object类的常用API
  • 原文地址:https://blog.csdn.net/qq_22764813/article/details/126761775
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号