{"id":103,"date":"2024-10-21T14:35:28","date_gmt":"2024-10-21T06:35:28","guid":{"rendered":"https:\/\/eve2333.top\/?p=103"},"modified":"2024-10-21T14:51:28","modified_gmt":"2024-10-21T06:51:28","slug":"yolov5%e5%ae%9e%e6%88%98%e5%85%a8%e9%83%a8%e6%b5%81%e7%a8%8b","status":"publish","type":"post","link":"https:\/\/eve2333.top\/?p=103","title":{"rendered":"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b"},"content":{"rendered":"<p>\u672c\u79d1\u751f\u9636\u6bb5\u9664\u4e86\u5728\u4e2d\u7b49\u4ee5\u4e0a\u7684985\u548c\u67d0\u4e9b\u7279\u5b9a\u7684CS\u5f3a\u9879\u9662\u6821\uff0c\u65e0\u610f\u613f\u7814\u7a76\u751f\u5b66\u4e60\u7684\u672c\u79d1\u751f\u662f\u4e0d\u5efa\u8bae\u5b66\u4e60\u4eba\u5de5\u667a\u80fd\u8fd9\u4e00\u4e13\u4e1a\u7684\uff0c\u4fdd\u7814\u5b66\u751f\u4e5f\u8bb8\u53ef\u4ee5\u5728\u5b9e\u9a8c\u5ba4\u6253\u5de5\u63a8\u8350\u4fe1\u5b66\u4e60\u63a5\u89e6\u5230\u6b64\u7c7b\u4e8b\u4ef6\uff0c\u6b64\u9879blog\u4e3b\u8981\u662f\u5bf9yolov5\u7684\u5b9e\u8df5\u6027\u9879\u76ee\uff0cyolov5\u4f5c\u4e3a\u6700\u5177\u6709\u4ee3\u8868\u6027\u7684yolo\u7248\u672c\uff0c\u5373\u4fbf\u662f2024\u5e74\u4e0a\u534a\u5e74\u6e05\u534e\u7684yolov10\uff0c\u4e5f\u96be\u63a9\u4ed6\u7684\u72ec\u7279\u5149\u8f89\uff0c\u5728\u6b64\u4e0d\u5bf9yolov1\u5230yolov5\u7684\u7248\u672c\u8fed\u4ee3\u548c\u7b97\u6cd5\u66f4\u66ff\u8fdb\u884c\u8be6\u7ec6\u7684\u89e3\u8bf4\u548c\u9610\u8ff0\uff0c\u53ea\u8fdb\u884c\u5b9e\u9645\u9879\u76ee\u6f14\u7ec3<\/p>\n<p>\u2022 \u00a0Miniconda<br \/>\n\u2022\u00a0 \u4e0b\u8f7d\u5730\u5740\uff1a<span class=\"cke_widget_wrapper cke_widget_inline cke_widget_csdnlink cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"a \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"a\" data-cke-filter=\"off\" data-cke-widget-id=\"34\" data-cke-widget-wrapper=\"1\"><a class=\"cke_widget_editable cke_widget_element\" title=\"Index of \/anaconda\/miniconda\/ | \u6e05\u534e\u5927\u5b66\u5f00\u6e90\u8f6f\u4ef6\u955c\u50cf\u7ad9 | Tsinghua Open Source Mirror\" contenteditable=\"true\" href=\"https:\/\/mirrors.tuna.tsinghua.edu.cn\/anaconda\/miniconda\/\" data-cke-enter-mode=\"2\" data-cke-saved-href=\"https:\/\/mirrors.tuna.tsinghua.edu.cn\/anaconda\/miniconda\/\" data-cke-widget-data=\"%7B%22url%22%3A%22https%3A%2F%2Fmirrors.tuna.tsinghua.edu.cn%2Fanaconda%2Fminiconda%2F%22%2C%22text%22%3A%22Index%20of%20%2Fanaconda%2Fminiconda%2F%20%7C%20%E6%B8%85%E5%8D%8E%E5%A4%A7%E5%AD%A6%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6%E9%95%9C%E5%83%8F%E7%AB%99%20%7C%20Tsinghua%20Open%20Source%20Mirror%22%2C%22desc%22%3A%22%22%2C%22icon%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22isCard%22%3Afalse%2C%22hasResquest%22%3Atrue%2C%22iconDefault%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22id%22%3A%22Us3PlE-1729491708060%22%2C%22classes%22%3Anull%7D\" data-cke-widget-editable=\"text\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-link-icon=\"https:\/\/csdnimg.cn\/release\/blog_editor_html\/release2.3.7\/ckeditor\/plugins\/CsdnLink\/icons\/icon-default.png?t=O83A\" data-link-title=\"Index of \/anaconda\/miniconda\/ | \u6e05\u534e\u5927\u5b66\u5f00\u6e90\u8f6f\u4ef6\u955c\u50cf\u7ad9 | Tsinghua Open Source Mirror\" data-widget=\"csdnlink\" target=\"_blank\"  rel=\"nofollow\" >Index of \/anaconda\/miniconda\/ | \u6e05\u534e\u5927\u5b66\u5f00\u6e90\u8f6f\u4ef6\u955c\u50cf\u7ad9 | Tsinghua Open Source Mirror<\/a><\/span><br \/>\n\u2022 \u00a0pypi\u56fd\u5185\u6e90\uff1a<br \/>\n\u2022\u00a0 \u00a0 \u00a0 \u00a0<span class=\"cke_widget_wrapper cke_widget_inline cke_widget_csdnlink cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"a \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"a\" data-cke-filter=\"off\" data-cke-widget-id=\"33\" data-cke-widget-wrapper=\"1\"><a class=\"cke_widget_editable cke_widget_element\" title=\"pypi | \u955c\u50cf\u7ad9\u4f7f\u7528\u5e2e\u52a9 | \u6e05\u534e\u5927\u5b66\u5f00\u6e90\u8f6f\u4ef6\u955c\u50cf\u7ad9 | Tsinghua Open Source Mirror\" contenteditable=\"true\" href=\"https:\/\/mirrors.tuna.tsinghua.edu.cn\/help\/pypi\/\" data-cke-enter-mode=\"2\" data-cke-saved-href=\"https:\/\/mirrors.tuna.tsinghua.edu.cn\/help\/pypi\/\" data-cke-widget-data=\"%7B%22url%22%3A%22https%3A%2F%2Fmirrors.tuna.tsinghua.edu.cn%2Fhelp%2Fpypi%2F%22%2C%22text%22%3A%22pypi%20%7C%20%E9%95%9C%E5%83%8F%E7%AB%99%E4%BD%BF%E7%94%A8%E5%B8%AE%E5%8A%A9%20%7C%20%E6%B8%85%E5%8D%8E%E5%A4%A7%E5%AD%A6%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6%E9%95%9C%E5%83%8F%E7%AB%99%20%7C%20Tsinghua%20Open%20Source%20Mirror%22%2C%22desc%22%3A%22%22%2C%22icon%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22isCard%22%3Afalse%2C%22hasResquest%22%3Atrue%2C%22iconDefault%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22id%22%3A%22UCyLsO-1729491708060%22%2C%22classes%22%3Anull%7D\" data-cke-widget-editable=\"text\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-link-icon=\"https:\/\/csdnimg.cn\/release\/blog_editor_html\/release2.3.7\/ckeditor\/plugins\/CsdnLink\/icons\/icon-default.png?t=O83A\" data-link-title=\"pypi | \u955c\u50cf\u7ad9\u4f7f\u7528\u5e2e\u52a9 | \u6e05\u534e\u5927\u5b66\u5f00\u6e90\u8f6f\u4ef6\u955c\u50cf\u7ad9 | Tsinghua Open Source Mirror\" data-widget=\"csdnlink\" target=\"_blank\"  rel=\"nofollow\" >pypi | \u955c\u50cf\u7ad9\u4f7f\u7528\u5e2e\u52a9 | \u6e05\u534e\u5927\u5b66\u5f00\u6e90\u8f6f\u4ef6\u955c\u50cf\u7ad9 | Tsinghua Open Source Mirror<\/a><\/span><br \/>\n\u2022 \u00a0Pytorch<br \/>\n\u2022\u5b98\u65b9\u7f51\u7ad9\uff1a<span class=\"cke_widget_wrapper cke_widget_inline cke_widget_csdnlink cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"a \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"a\" data-cke-filter=\"off\" data-cke-widget-id=\"32\" data-cke-widget-wrapper=\"1\"><a class=\"cke_widget_editable cke_widget_element\" title=\"PyTorch\" contenteditable=\"true\" href=\"https:\/\/pytorch.org\/\" data-cke-enter-mode=\"2\" data-cke-saved-href=\"https:\/\/pytorch.org\/\" data-cke-widget-data=\"%7B%22url%22%3A%22https%3A%2F%2Fpytorch.org%2F%22%2C%22text%22%3A%22PyTorch%22%2C%22desc%22%3A%22%22%2C%22icon%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22isCard%22%3Afalse%2C%22hasResquest%22%3Atrue%2C%22iconDefault%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22id%22%3A%22rmEnOo-1729491708060%22%2C%22classes%22%3Anull%7D\" data-cke-widget-editable=\"text\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-link-icon=\"https:\/\/csdnimg.cn\/release\/blog_editor_html\/release2.3.7\/ckeditor\/plugins\/CsdnLink\/icons\/icon-default.png?t=O83A\" data-link-title=\"PyTorch\" data-widget=\"csdnlink\" target=\"_blank\"  rel=\"nofollow\" >PyTorch<\/a><\/span><br \/>\n\u2022 \u00a0YoloV5<br \/>\n\u2022 Github\u5730\u5740\uff1a<span class=\"cke_widget_wrapper cke_widget_inline cke_widget_csdnlink cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"a \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"a\" data-cke-filter=\"off\" data-cke-widget-id=\"31\" data-cke-widget-wrapper=\"1\"><a class=\"cke_widget_editable cke_widget_element\" title=\"ultralytics\/yolov5: YOLOv5 \ud83d\ude80 in PyTorch &gt; ONNX &gt; CoreML &gt; TFLite (github.com)\" contenteditable=\"true\" href=\"https:\/\/github.com\/ultralytics\/yolov5\" data-cke-enter-mode=\"2\" data-cke-saved-href=\"https:\/\/github.com\/ultralytics\/yolov5\" data-cke-widget-data=\"%7B%22url%22%3A%22https%3A%2F%2Fgithub.com%2Fultralytics%2Fyolov5%22%2C%22text%22%3A%22ultralytics%2Fyolov5%3A%20YOLOv5%20%F0%9F%9A%80%20in%20PyTorch%20%3E%20ONNX%20%3E%20CoreML%20%3E%20TFLite%20(github.com)%22%2C%22desc%22%3A%22%22%2C%22icon%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22isCard%22%3Afalse%2C%22hasResquest%22%3Atrue%2C%22iconDefault%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22id%22%3A%22rKeI3U-1729491708059%22%2C%22classes%22%3Anull%7D\" data-cke-widget-editable=\"text\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-link-icon=\"https:\/\/csdnimg.cn\/release\/blog_editor_html\/release2.3.7\/ckeditor\/plugins\/CsdnLink\/icons\/icon-default.png?t=O83A\" data-link-title=\"ultralytics\/yolov5: YOLOv5 \ud83d\ude80 in PyTorch &gt; ONNX &gt; CoreML &gt; TFLite (github.com)\" data-widget=\"csdnlink\" target=\"_blank\"  rel=\"nofollow\" >ultralytics\/yolov5: YOLOv5 \ud83d\ude80 in PyTorch &gt; ONNX &gt; CoreML &gt; TFLite (github.com)<\/a><\/span><\/p>\n<p>\u5176\u5b9e\u4e0d\u4e00\u5b9a\u8981miniconda\uff0canaconda\u5c31ok\uff0c\u56e0\u4e3a\u662f\u66f4\u5168\u7684\u5de5\u5177\u5e93\uff0c\u6211\u5728opencv\u5c31\u4e0b\u4e86anaconda\uff0c\u4e0d\u518d\u6362\u6210\u8f7b\u91cf\u7ea7\u7684anaconda\uff0cminiconda\u9009\u62e9py38 22.11.1-1\u8fd9\u4e2a\u7a33\u5b9a\u7248\u672c<\/p>\n<p>\u5982\u679cC\u76d8\u6709\u7a7a\u95f4\uff0c\u6700\u597d\u5b89\u88c5\u5728C\u76d8\uff0c\u4e14\u5b89\u88c5\u76ee\u5f55\u4e2d\u4e0d\u8981\u6709\u4e2d\u6587----&gt;\u52fe\u9009\u5c06\u5176\u6dfb\u52a0\u5230PATH\u00a0 ------&gt;\u5728conda\u7684cmd\u4e2dconda create -n yolov8 python=3.8Ps:\u7248\u672c\u8fc7\u9ad8\u4f1a\u6709\u4e9b\u5305\u88c5\u4e0d\u4e0a<\/p>\n<h3>pytorch\u7684\u5b89\u88c5<\/h3>\n<p>&nbsp;<\/p>\n<p>\u5982\u679c\u6ca1\u6709Nvidia\u663e\u5361\uff0c\u9009\u62e9cpu\u7248\u672c\u5373\u53ef<\/p>\n<p>\u5bf9\u4e8eNvidia\u663e\u5361\uff0c\u5728windows\u641c\u7d22\u2018\u82f1\u4f1f\u8fbe\u63a7\u5236\u9762\u677f\u2019\uff0c\u70b9\u51fb\u5de6\u4e0b\u89d2\u7684\u7cfb\u7edf\u4fe1\u606f\u663e\u793a\u5982\u4e0b<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-107 size-medium\" src=\"https:\/\/47.121.208.150\/wp-content\/uploads\/2024\/10\/1729493299-\u5c4f\u5e55\u622a\u56fe-2024-10-21-144724-300x286.png\" alt=\"\" width=\"300\" height=\"286\" srcset=\"https:\/\/eve2333.top\/wp-content\/uploads\/2024\/10\/1729493299-\u5c4f\u5e55\u622a\u56fe-2024-10-21-144724-300x286.png 300w, https:\/\/eve2333.top\/wp-content\/uploads\/2024\/10\/1729493299-\u5c4f\u5e55\u622a\u56fe-2024-10-21-144724-768x731.png 768w, https:\/\/eve2333.top\/wp-content\/uploads\/2024\/10\/1729493299-\u5c4f\u5e55\u622a\u56fe-2024-10-21-144724.png 831w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>\u8868\u660eCUDA 12.2 146<\/p>\n<p>\u6839\u636e\u4f60\u7684\u663e\u5361\uff0c\u9009\u62e9\u8f83\u65b0\u7248\u672c\uff0c\u8fd9\u91cc\u5982\u679c\u5927\u5bb6\u6709\u62a5\u9519\u7684\u8bdd\u53ef\u4ee5\u770b\u770b\u662f\u4e0d\u662f\u5f00\u4e86\u4ee3\u7406\uff08\u68af\u5b50\uff09\uff0c\u5f00\u4e86\u4ee3\u7406\u8bb0\u5f97\u628a\u4ee3\u7406\u5173\u4e86\uff0c\u8f7b\u91cf\u7ea7\u7684\u8bad\u7ec3\u4e0d\u7528\u4e0b\u8f7dCUDA\uff0c\u800c\u4e14\u4f60\u7684\u663e\u5361\u4e5f\u57fa\u672c\u4e0a\u4e0d\u600e\u4e48\u6837<\/p>\n<p>\u6309\u7167\u5982\u4e0b\u64cd\u4f5c\uff0c\u82e5\u548c\u4e0b\u56fe\u4e00\u6837\u5373\u53ef\u8868\u660eok<\/p>\n<p><a href=\"https:\/\/i-blog.csdnimg.cn\/direct\/debbcce075aa45309bcc040d59ea575d.png\" alt=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" title=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/i-blog.csdnimg.cn\/direct\/debbcce075aa45309bcc040d59ea575d.png<\/a><\/p>\n<h3>yolov5\u5728github<\/h3>\n<p>\u6253\u5f00\u53f3\u4fa7\u7684release\u9875\u9762\u4e0b\u8f7d\u540e\u6253\u5f00requirement.txt<\/p>\n<p>\u4fee\u6539numpy==1.20.3\uff0cPillow==8.3.0\uff0c\u628atorch\u548ctorchvision\u4e24\u884c\u6ce8\u91ca\u6389\u5373\u53ef<\/p>\n<p>\u5728yolov5\u7684\u6587\u4ef6\u5939\u6253\u5f00cmd\uff0c\u8f93\u5165conda activate yolov5\uff0c\u7136\u540epip install -r requirements.txt<\/p>\n<p>python detect.py,\u4f1a\u663e\u793a\u4e00\u4e9b\u57fa\u672c\u4fe1\u606f\uff0c\u5b89\u88c5yolov5s.pt\uff0c\u6839\u636e\u63d0\u793a<\/p>\n<h1>\u6a21\u578b\u68c0\u6d4b<\/h1>\n<h3>weights\uff1a\u8bad\u7ec3\u597d\u7684\u6a21\u578b\u6587\u4ef6<\/h3>\n<p><a href=\"https:\/\/i-blog.csdnimg.cn\/direct\/75310ea48f594cff9354667cd1d76dce.png\" alt=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" title=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/i-blog.csdnimg.cn\/direct\/75310ea48f594cff9354667cd1d76dce.png<\/a><\/p>\n<p>\u901a\u8fc7cmd\u8f93\u5165python detect.py --weights yolov5s.pt<\/p>\n<p>\u5176\u4ed6\u7684\u6587\u4ef6\u53ef\u4ee5\u63d0\u524d\u4e0b\u597d\u653e\u5728yolo\u6587\u4ef6\u5939\u4e2d\uff0c<\/p>\n<h3>source\uff1a\u68c0\u6d4b\u7684\u76ee\u6807\uff0c\u56fe\u7247\uff0c\u6587\u4ef6\u5939\uff0c\u5c4f\u5e55\uff0c\u6444\u50cf\u5934\u7b49<\/h3>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"26\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22bash%22%2C%22code%22%3A%22python%20detect.py%20--weights%20yolov5s.pt%20--source%20data%2Fimages%2Fbus.jpg%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-bash hljs\">python detect.py --weights yolov5s.pt --<span class=\"hljs-built_in\">source<\/span> data\/images\/bus.jpg<\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<p>\u5c31\u51fa\u6765\u4e86\u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u63a5\u4e0b\u6765\u5bf9\u5c4f\u5e55\u5b9e\u65f6\u76d1\u6d4b<\/p>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"25\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22bash%22%2C%22code%22%3A%22python%20detect.py%20--weights%20yolov5s.pt%20--source%20screen%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-bash hljs\">python detect.py --weights yolov5s.pt --<span class=\"hljs-built_in\">source<\/span> screen<\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<h3>conf-thres\u5224\u65ad\u7f6e\u4fe1\u5ea6\u9608\u503c<\/h3>\n<h3>iou-thres\u76f8\u53cd\u7684<\/h3>\n<p><a href=\"https:\/\/i-blog.csdnimg.cn\/direct\/8cc07f18749d4d9abeef2ff1c0d3f623.png\" alt=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" title=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/i-blog.csdnimg.cn\/direct\/8cc07f18749d4d9abeef2ff1c0d3f623.png<\/a><\/p>\n<p><span class=\"cke_widget_wrapper cke_widget_inline cke_widget_image cke_image_nocaption cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\" \u56fe\u50cf \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u56fe\u50cf\" data-cke-filter=\"off\" data-cke-widget-id=\"24\" data-cke-widget-wrapper=\"1\"><img decoding=\"async\" class=\"cke_widget_element\" src=\"https:\/\/i-blog.csdnimg.cn\/direct\/8cc07f18749d4d9abeef2ff1c0d3f623.png\" alt=\"\" data-cke-saved-src=\"https:\/\/i-blog.csdnimg.cn\/direct\/8cc07f18749d4d9abeef2ff1c0d3f623.png\" data-cke-widget-data=\"%7B%22hasCaption%22%3Afalse%2C%22src%22%3A%22https%3A%2F%2Fi-blog.csdnimg.cn%2Fdirect%2F8cc07f18749d4d9abeef2ff1c0d3f623.png%22%2C%22alt%22%3A%22%22%2C%22width%22%3A%22%22%2C%22height%22%3A%22%22%2C%22lock%22%3Atrue%2C%22align%22%3A%22none%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"image\" \/><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" draggable=\"true\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><span class=\"cke_image_resizer\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u6539\u53d8\u5c3a\u5bf8\">\u200b<\/span><span class=\"cke_widget_edit_container\" title=\"\u7f16\u8f91\u56fe\u7247\">\u7f16\u8f91<\/span><\/span>\u5404\u79cd\u5404\u6837\u7684\u53c2\u6570<\/p>\n<h2>jupyter\u5b9e\u73b0\u4e00\u4e2a\u754c\u9762<\/h2>\n<p>\u65b0\u5efa\u4e00\u4e2ahub_detect.ipynb<\/p>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"23\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22bash%22%2C%22code%22%3A%22import%20torch%5Cn%5Cn%23%20Model%20%20%5Cnmodel%20%3D%20torch.hub.load(%5C%22.%2F%5C%22%2C%20%5C%22yolov5s%5C%22%2C%20source%3D%5C%22local%5C%22)%5Cn%5Cn%23Images%5Cnimg%20%3D%20%5C%22.%2Fdata%2Fimages%2Fzidane.jpg%5C%22%5Cn%5Cn%23%20Inference%5Cnresults%20%3D%20model(img)%5Cn%5Cn%23%20Results%5Cnresults.show()%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-bash hljs\">import torch\r\n\r\n<span class=\"hljs-comment\"># Model  <\/span>\r\nmodel = torch.hub.load(<span class=\"hljs-string\">\".\/\"<\/span>, <span class=\"hljs-string\">\"yolov5s\"<\/span>, <span class=\"hljs-built_in\">source<\/span>=<span class=\"hljs-string\">\"local\"<\/span>)\r\n\r\n<span class=\"hljs-comment\">#Images<\/span>\r\nimg = <span class=\"hljs-string\">\".\/data\/images\/zidane.jpg\"<\/span>\r\n\r\n<span class=\"hljs-comment\"># Inference<\/span>\r\nresults = model(img)\r\n\r\n<span class=\"hljs-comment\"># Results<\/span>\r\nresults.show()<\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<h1>\u6784\u5efa\u81ea\u5b9a\u4e49\u6570\u636e\u96c6<\/h1>\n<h3>\u56fe\u7247\u8fdb\u884c\u8bc6\u522b<\/h3>\n<p><span class=\"cke_widget_wrapper cke_widget_inline cke_widget_csdnlink cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"a \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"a\" data-cke-filter=\"off\" data-cke-widget-id=\"22\" data-cke-widget-wrapper=\"1\"><a class=\"cke_widget_editable cke_widget_element\" title=\"\u6559\u7a0b\uff1a\u8d85\u8be6\u7ec6\u4ece\u96f6\u5f00\u59cbyolov5\u6a21\u578b\u8bad\u7ec3_yolo\u8bad\u7ec3-CSDN\u535a\u5ba2d\" contenteditable=\"true\" href=\"https:\/\/blog.csdn.net\/qq_45701791\/article\/details\/113992622\" data-cke-enter-mode=\"2\" data-cke-saved-href=\"https:\/\/blog.csdn.net\/qq_45701791\/article\/details\/113992622\" data-cke-widget-data=\"%7B%22url%22%3A%22https%3A%2F%2Fblog.csdn.net%2Fqq_45701791%2Farticle%2Fdetails%2F113992622%22%2C%22text%22%3A%22%E6%95%99%E7%A8%8B%EF%BC%9A%E8%B6%85%E8%AF%A6%E7%BB%86%E4%BB%8E%E9%9B%B6%E5%BC%80%E5%A7%8Byolov5%E6%A8%A1%E5%9E%8B%E8%AE%AD%E7%BB%83_yolo%E8%AE%AD%E7%BB%83-CSDN%E5%8D%9A%E5%AE%A2d%22%2C%22desc%22%3A%22%22%2C%22icon%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22isCard%22%3Afalse%2C%22hasResquest%22%3Atrue%2C%22iconDefault%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22id%22%3A%22Ou6LPL-1729491708053%22%2C%22classes%22%3Anull%7D\" data-cke-widget-editable=\"text\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-link-icon=\"https:\/\/csdnimg.cn\/release\/blog_editor_html\/release2.3.7\/ckeditor\/plugins\/CsdnLink\/icons\/icon-default.png?t=O83A\" data-link-title=\"\u6559\u7a0b\uff1a\u8d85\u8be6\u7ec6\u4ece\u96f6\u5f00\u59cbyolov5\u6a21\u578b\u8bad\u7ec3_yolo\u8bad\u7ec3-CSDN\u535a\u5ba2d\" data-widget=\"csdnlink\" target=\"_blank\"  rel=\"nofollow\" >\u6559\u7a0b\uff1a\u8d85\u8be6\u7ec6\u4ece\u96f6\u5f00\u59cbyolov5\u6a21\u578b\u8bad\u7ec3_yolo\u8bad\u7ec3-CSDN\u535a\u5ba2d<\/a><\/span><\/p>\n<p>\u5c31\u662f\u5982\u4e0a\u9762\u8bf4\u8bf4\u5373\u53ef<\/p>\n<h3>\u89c6\u9891\u52a8\u6001\u8bc6\u522b<\/h3>\n<p><a href=\"https:\/\/i-blog.csdnimg.cn\/direct\/0dcedb29700342ecbcf00f7fcb156f04.png\" alt=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" title=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/i-blog.csdnimg.cn\/direct\/0dcedb29700342ecbcf00f7fcb156f04.png<\/a><\/p>\n<p><a href=\"https:\/\/i-blog.csdnimg.cn\/direct\/eb7e76240a4942ddb09c6b08974c2981.png\" alt=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" title=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/i-blog.csdnimg.cn\/direct\/eb7e76240a4942ddb09c6b08974c2981.png<\/a><\/p>\n<p>\u6211\u4eec\u5728\u6587\u4ef6\u5939\u8fd9\u79cd\u521b\u5efadatasets\uff0c\u91cc\u9762\u4e00\u4e2a\u89c6\u9891\uff0c\u4e00\u4e2aipynb\u6587\u4ef6\u5bf9\u89c6\u9891\u8fdb\u884copencv\u62bd\u5e27\uff0c\u628a\u62bd\u51fa\u7684\u56fe\u7247\u653e\u5728images\u6587\u4ef6\u5939<\/p>\n<p>\u7ec8\u7aef\u8f93\u5165labelimg\uff0c\u70b9\u51fbopendir\uff0c\u9009\u62e9images\uff0cchanges save dir\u4e2d\uff0c\u9009\u62e9\u540c\u7ea7\u7684labels\u6587\u4ef6\u5939<\/p>\n<p>\u628apascal-C\u70b9\u4e00\u4e0b\u53d8\u6210yolo\uff0csave\u4fdd\u5b58\uff0c\u6253\u5f00\u4e0a\u9762view\uff0c\u6253\u5f00autosave\u81ea\u52a8\u4fdd\u5b58<\/p>\n<p>\u53f3\u952ecreate box\uff0c\u53d1\u73b0\u95ea\u9000\u4e0d\u505c\uff0c\u901a\u8fc7\u6b64\u65b9\u6cd5\u662f\u5426\u89e3\u51b3\uff1f\u95ea\u9000\u662f\u56e0\u4e3a<strong>\u7248\u672c3.8<\/strong>\u548c3.11\u4e0d\u5339\u914d \u9700\u8981\u91cd\u65b0\u4e0b\u8f7d<span class=\"cke_widget_wrapper cke_widget_inline cke_widget_csdnlink cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"a \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"a\" data-cke-filter=\"off\" data-cke-widget-id=\"19\" data-cke-widget-wrapper=\"1\"><a class=\"cke_widget_editable cke_widget_element\" title=\"Unable to draw annotations on Windows \u00b7 Issue #811 \u00b7 HumanSignal\/labelImg (github.com)\" contenteditable=\"true\" href=\"https:\/\/github.com\/HumanSignal\/labelImg\/issues\/811\" data-cke-enter-mode=\"2\" data-cke-saved-href=\"https:\/\/github.com\/HumanSignal\/labelImg\/issues\/811\" data-cke-widget-data=\"%7B%22url%22%3A%22https%3A%2F%2Fgithub.com%2FHumanSignal%2FlabelImg%2Fissues%2F811%22%2C%22text%22%3A%22Unable%20to%20draw%20annotations%20on%20Windows%20%C2%B7%20Issue%20%23811%20%C2%B7%20HumanSignal%2FlabelImg%20(github.com)%22%2C%22desc%22%3A%22%22%2C%22icon%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22isCard%22%3Afalse%2C%22hasResquest%22%3Atrue%2C%22iconDefault%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22id%22%3A%22jC1ue3-1729491708052%22%2C%22classes%22%3Anull%7D\" data-cke-widget-editable=\"text\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-link-icon=\"https:\/\/csdnimg.cn\/release\/blog_editor_html\/release2.3.7\/ckeditor\/plugins\/CsdnLink\/icons\/icon-default.png?t=O83A\" data-link-title=\"Unable to draw annotations on Windows \u00b7 Issue #811 \u00b7 HumanSignal\/labelImg (github.com)\" data-widget=\"csdnlink\" target=\"_blank\"  rel=\"nofollow\" >Unable to draw annotations on Windows \u00b7 Issue #811 \u00b7 HumanSignal\/labelImg (github.com)<\/a><\/span><\/p>\n<p>\u6362\u7528labelme\uff0c\u76f8\u540c\u7684pip install labelme\uff0c\u540c\u6837\u7684\u65b9\u6cd5\uff0c\u6807\u6ce8daitu\u548cmingren<\/p>\n<p>labelimg\u6807\u6ce8\u540e\u662fJSON\u6587\u4ef6\uff0c\u548cyolo\u7684txt\u4e0d\u540c<\/p>\n<p>jsonTOtxt\u672a\u6d4b\u8bd5<\/p>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"18\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22python%22%2C%22code%22%3A%22import%20json%5Cnimport%20os%5Cnimport%20glob%5Cnimport%20os.path%20as%20osp%5Cn%5Cn%5Cndef%20labelme2yolov2Seg(jsonfilePath%3D%5C%22%5C%22%2C%20resultDirPath%3D%5C%22%5C%22%2C%20classList%3D%5B%5C%22YiBiao%5C%22%2C%20%5C%22ZhiZhen%5C%22%5D)%3A%5Cn%20%20%20%20%5C%22%5C%22%5C%22%5Cn%20%20%20%20%E6%AD%A4%E5%87%BD%E6%95%B0%E7%94%A8%E6%9D%A5%E5%B0%86labelme%E8%BD%AF%E4%BB%B6%E6%A0%87%E6%B3%A8%E5%A5%BD%E7%9A%84%E6%95%B0%E6%8D%AE%E9%9B%86%E8%BD%AC%E6%8D%A2%E4%B8%BAyolov5_7.0sege%E4%B8%AD%E4%BD%BF%E7%94%A8%E7%9A%84%E6%95%B0%E6%8D%AE%E9%9B%86%5Cn%20%20%20%20%3Aparam%20jsonfilePath%3A%20labelme%E6%A0%87%E6%B3%A8%E5%A5%BD%E7%9A%84*.json%E6%96%87%E4%BB%B6%E6%89%80%E5%9C%A8%E6%96%87%E4%BB%B6%E5%A4%B9%5Cn%20%20%20%20%3Aparam%20resultDirPath%3A%20%E8%BD%AC%E6%8D%A2%E5%A5%BD%E5%90%8E%E7%9A%84*.txt%E4%BF%9D%E5%AD%98%E6%96%87%E4%BB%B6%E5%A4%B9%5Cn%20%20%20%20%3Aparam%20classList%3A%20%E6%95%B0%E6%8D%AE%E9%9B%86%E4%B8%AD%E7%9A%84%E7%B1%BB%E5%88%AB%E6%A0%87%E7%AD%BE%5Cn%20%20%20%20%3Areturn%3A%5Cn%20%20%20%20%5C%22%5C%22%5C%22%5Cn%20%20%20%20%23%200.%E5%88%9B%E5%BB%BA%E4%BF%9D%E5%AD%98%E8%BD%AC%E6%8D%A2%E7%BB%93%E6%9E%9C%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%5Cn%20%20%20%20if(not%20os.path.exists(resultDirPath))%3A%5Cn%20%20%20%20%20%20%20%20os.mkdir(resultDirPath)%5Cn%5Cn%20%20%20%20%23%201.%E8%8E%B7%E5%8F%96%E7%9B%AE%E5%BD%95%E4%B8%8B%E6%89%80%E6%9C%89%E7%9A%84labelme%E6%A0%87%E6%B3%A8%E5%A5%BD%E7%9A%84Json%E6%96%87%E4%BB%B6%EF%BC%8C%E5%AD%98%E5%85%A5%E5%88%97%E8%A1%A8%E4%B8%AD%5Cn%20%20%20%20jsonfileList%20%3D%20glob.glob(osp.join(jsonfilePath%2C%20%5C%22*.json%5C%22))%5Cn%20%20%20%20print(jsonfileList)%20%20%23%20%E6%89%93%E5%8D%B0%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%8B%E7%9A%84%E6%96%87%E4%BB%B6%E5%90%8D%E7%A7%B0%5Cn%5Cn%20%20%20%20%23%202.%E9%81%8D%E5%8E%86json%E6%96%87%E4%BB%B6%EF%BC%8C%E8%BF%9B%E8%A1%8C%E8%BD%AC%E6%8D%A2%5Cn%20%20%20%20for%20jsonfile%20in%20jsonfileList%3A%5Cn%20%20%20%20%20%20%20%20%23%203.%20%E6%89%93%E5%BC%80json%E6%96%87%E4%BB%B6%5Cn%20%20%20%20%20%20%20%20with%20open(jsonfile%2C%20%5C%22r%5C%22)%20as%20f%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20file_in%20%3D%20json.load(f)%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%23%204.%20%E8%AF%BB%E5%8F%96%E6%96%87%E4%BB%B6%E4%B8%AD%E8%AE%B0%E5%BD%95%E7%9A%84%E6%89%80%E6%9C%89%E6%A0%87%E6%B3%A8%E7%9B%AE%E6%A0%87%5Cn%20%20%20%20%20%20%20%20%20%20%20%20shapes%20%3D%20file_in%5B%5C%22shapes%5C%22%5D%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%23%205.%20%E4%BD%BF%E7%94%A8%E5%9B%BE%E5%83%8F%E5%90%8D%E7%A7%B0%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AAtxt%E6%96%87%E4%BB%B6%EF%BC%8C%E7%94%A8%E6%9D%A5%E4%BF%9D%E5%AD%98%E6%95%B0%E6%8D%AE%5Cn%20%20%20%20%20%20%20%20%20%20%20%20with%20open(resultDirPath%20%2B%20%5C%22%5C%5C%5C%5C%5C%22%20%2B%20jsonfile.split(%5C%22%5C%5C%5C%5C%5C%22)%5B-1%5D.replace(%5C%22.json%5C%22%2C%20%5C%22.txt%5C%22)%2C%20%5C%22w%5C%22)%20as%20file_handle%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%206.%20%E9%81%8D%E5%8E%86shapes%E4%B8%AD%E7%9A%84%E6%AF%8F%E4%B8%AA%E7%9B%AE%E6%A0%87%E7%9A%84%E8%BD%AE%E5%BB%93%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20shape%20in%20shapes%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%207.%E6%A0%B9%E6%8D%AEjson%E4%B8%AD%E7%9B%AE%E6%A0%87%E7%9A%84%E7%B1%BB%E5%88%AB%E6%A0%87%E7%AD%BE%EF%BC%8C%E4%BB%8EclassList%E4%B8%AD%E5%AF%BB%E6%89%BE%E7%B1%BB%E5%88%AB%E7%9A%84ID%EF%BC%8C%E7%84%B6%E5%90%8E%E5%86%99%E5%85%A5txt%E6%96%87%E4%BB%B6%E4%B8%AD%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20file_handle.writelines(str(classList.index(shape%5B%5C%22label%5C%22%5D))%20%2B%20%5C%22%20%5C%22)%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%208.%20%E9%81%8D%E5%8E%86shape%E8%BD%AE%E5%BB%93%E4%B8%AD%E7%9A%84%E6%AF%8F%E4%B8%AA%E7%82%B9%EF%BC%8C%E6%AF%8F%E4%B8%AA%E7%82%B9%E8%A6%81%E8%BF%9B%E8%A1%8C%E5%9B%BE%E5%83%8F%E5%B0%BA%E5%AF%B8%E7%9A%84%E7%BC%A9%E6%94%BE%EF%BC%8C%E5%8D%B3x%2Fwidth%2C%20y%2Fheight%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20for%20point%20in%20shape%5B%5C%22points%5C%22%5D%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20x%20%3D%20point%5B0%5D%2Ffile_in%5B%5C%22imageWidth%5C%22%5D%20%20%23%20mask%E8%BD%AE%E5%BB%93%E4%B8%AD%E4%B8%80%E7%82%B9%E7%9A%84X%E5%9D%90%E6%A0%87%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20y%20%3D%20point%5B1%5D%2Ffile_in%5B%5C%22imageHeight%5C%22%5D%20%20%23%20mask%E8%BD%AE%E5%BB%93%E4%B8%AD%E4%B8%80%E7%82%B9%E7%9A%84Y%E5%9D%90%E6%A0%87%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20file_handle.writelines(str(x)%20%2B%20%5C%22%20%5C%22%20%2B%20str(y)%20%2B%20%5C%22%20%5C%22)%20%20%23%20%E5%86%99%E5%85%A5mask%E8%BD%AE%E5%BB%93%E7%82%B9%5Cn%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%23%209.%E6%AF%8F%E4%B8%AA%E7%89%A9%E4%BD%93%E4%B8%80%E8%A1%8C%E6%95%B0%E6%8D%AE%EF%BC%8C%E4%B8%80%E4%B8%AA%E7%89%A9%E4%BD%93%E9%81%8D%E5%8E%86%E5%AE%8C%E6%88%90%E5%90%8E%E9%9C%80%E8%A6%81%E6%8D%A2%E8%A1%8C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20file_handle.writelines(%5C%22%5C%5Cn%5C%22)%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%23%2010.%E6%89%80%E6%9C%89%E7%89%A9%E4%BD%93%E9%83%BD%E9%81%8D%E5%8E%86%E5%AE%8C%EF%BC%8C%E9%9C%80%E8%A6%81%E5%85%B3%E9%97%AD%E6%96%87%E4%BB%B6%5Cn%20%20%20%20%20%20%20%20%20%20%20%20file_handle.close()%5Cn%20%20%20%20%20%20%20%20%23%2010.%E6%89%80%E6%9C%89%E7%89%A9%E4%BD%93%E9%83%BD%E9%81%8D%E5%8E%86%E5%AE%8C%EF%BC%8C%E9%9C%80%E8%A6%81%E5%85%B3%E9%97%AD%E6%96%87%E4%BB%B6%5Cn%20%20%20%20%20%20%20%20f.close()%5Cn%5Cnif%20__name__%20%3D%3D%20%5C%22__main__%5C%22%3A%5Cn%20%20%20%20jsonfilePath%20%3D%20%5C%22E%3A%5C%5C%5C%5Cyolo%5C%5C%5C%5Cyolov5-master%5C%5C%5C%5Cdatasets%5C%5C%5C%5Clabelme%5C%5C%5C%5Cjson%5C%22%20%20%23%20%E8%A6%81%E8%BD%AC%E6%8D%A2%E7%9A%84json%E6%96%87%E4%BB%B6%E6%89%80%E5%9C%A8%E7%9B%AE%E5%BD%95%5Cn%20%20%20%20resultDirPath%20%3D%20%5C%22E%3A%5C%5C%5C%5Cyolo%5C%5C%5C%5Cyolov5-master%5C%5C%5C%5Cdatasets%5C%5C%5C%5Clabelme%5C%5C%5C%5Ctxt%5C%22%20%20%23%20%E8%A6%81%E7%94%9F%E6%88%90%E7%9A%84txt%E6%96%87%E4%BB%B6%E5%A4%B9%5Cn%20%20%20%20labelme2yolov2Seg(jsonfilePath%3DjsonfilePath%2C%20resultDirPath%3DresultDirPath%2C%20classList%3D%5B%5C%22YiBiao%5C%22%2C%20%5C%22ZhiZhen%5C%22%5D)%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-python hljs\"><span class=\"hljs-keyword\">import<\/span> json\r\n<span class=\"hljs-keyword\">import<\/span> os\r\n<span class=\"hljs-keyword\">import<\/span> glob\r\n<span class=\"hljs-keyword\">import<\/span> os.path <span class=\"hljs-keyword\">as<\/span> osp\r\n\r\n\r\n<span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">labelme2yolov2Seg<\/span>(<span class=\"hljs-params\">jsonfilePath=<span class=\"hljs-string\">\"\"<\/span>, resultDirPath=<span class=\"hljs-string\">\"\"<\/span>, classList=[<span class=\"hljs-string\">\"YiBiao\"<\/span>, <span class=\"hljs-string\">\"ZhiZhen\"<\/span>]<\/span>):\r\n    <span class=\"hljs-string\">\"\"\"\r\n    \u6b64\u51fd\u6570\u7528\u6765\u5c06labelme\u8f6f\u4ef6\u6807\u6ce8\u597d\u7684\u6570\u636e\u96c6\u8f6c\u6362\u4e3ayolov5_7.0sege\u4e2d\u4f7f\u7528\u7684\u6570\u636e\u96c6\r\n    :param jsonfilePath: labelme\u6807\u6ce8\u597d\u7684*.json\u6587\u4ef6\u6240\u5728\u6587\u4ef6\u5939\r\n    :param resultDirPath: \u8f6c\u6362\u597d\u540e\u7684*.txt\u4fdd\u5b58\u6587\u4ef6\u5939\r\n    :param classList: \u6570\u636e\u96c6\u4e2d\u7684\u7c7b\u522b\u6807\u7b7e\r\n    :return:\r\n    \"\"\"<\/span>\r\n    <span class=\"hljs-comment\"># 0.\u521b\u5efa\u4fdd\u5b58\u8f6c\u6362\u7ed3\u679c\u7684\u6587\u4ef6\u5939<\/span>\r\n    <span class=\"hljs-keyword\">if<\/span>(<span class=\"hljs-keyword\">not<\/span> os.path.exists(resultDirPath)):\r\n        os.mkdir(resultDirPath)\r\n\r\n    <span class=\"hljs-comment\"># 1.\u83b7\u53d6\u76ee\u5f55\u4e0b\u6240\u6709\u7684labelme\u6807\u6ce8\u597d\u7684Json\u6587\u4ef6\uff0c\u5b58\u5165\u5217\u8868\u4e2d<\/span>\r\n    jsonfileList = glob.glob(osp.join(jsonfilePath, <span class=\"hljs-string\">\"*.json\"<\/span>))\r\n    <span class=\"hljs-built_in\">print<\/span>(jsonfileList)  <span class=\"hljs-comment\"># \u6253\u5370\u6587\u4ef6\u5939\u4e0b\u7684\u6587\u4ef6\u540d\u79f0<\/span>\r\n\r\n    <span class=\"hljs-comment\"># 2.\u904d\u5386json\u6587\u4ef6\uff0c\u8fdb\u884c\u8f6c\u6362<\/span>\r\n    <span class=\"hljs-keyword\">for<\/span> jsonfile <span class=\"hljs-keyword\">in<\/span> jsonfileList:\r\n        <span class=\"hljs-comment\"># 3. \u6253\u5f00json\u6587\u4ef6<\/span>\r\n        <span class=\"hljs-keyword\">with<\/span> <span class=\"hljs-built_in\">open<\/span>(jsonfile, <span class=\"hljs-string\">\"r\"<\/span>) <span class=\"hljs-keyword\">as<\/span> f:\r\n            file_in = json.load(f)\r\n\r\n            <span class=\"hljs-comment\"># 4. \u8bfb\u53d6\u6587\u4ef6\u4e2d\u8bb0\u5f55\u7684\u6240\u6709\u6807\u6ce8\u76ee\u6807<\/span>\r\n            shapes = file_in[<span class=\"hljs-string\">\"shapes\"<\/span>]\r\n\r\n            <span class=\"hljs-comment\"># 5. \u4f7f\u7528\u56fe\u50cf\u540d\u79f0\u521b\u5efa\u4e00\u4e2atxt\u6587\u4ef6\uff0c\u7528\u6765\u4fdd\u5b58\u6570\u636e<\/span>\r\n            <span class=\"hljs-keyword\">with<\/span> <span class=\"hljs-built_in\">open<\/span>(resultDirPath + <span class=\"hljs-string\">\"\\\\\"<\/span> + jsonfile.split(<span class=\"hljs-string\">\"\\\\\"<\/span>)[-<span class=\"hljs-number\">1<\/span>].replace(<span class=\"hljs-string\">\".json\"<\/span>, <span class=\"hljs-string\">\".txt\"<\/span>), <span class=\"hljs-string\">\"w\"<\/span>) <span class=\"hljs-keyword\">as<\/span> file_handle:\r\n                <span class=\"hljs-comment\"># 6. \u904d\u5386shapes\u4e2d\u7684\u6bcf\u4e2a\u76ee\u6807\u7684\u8f6e\u5ed3<\/span>\r\n                <span class=\"hljs-keyword\">for<\/span> shape <span class=\"hljs-keyword\">in<\/span> shapes:\r\n                    <span class=\"hljs-comment\"># 7.\u6839\u636ejson\u4e2d\u76ee\u6807\u7684\u7c7b\u522b\u6807\u7b7e\uff0c\u4ececlassList\u4e2d\u5bfb\u627e\u7c7b\u522b\u7684ID\uff0c\u7136\u540e\u5199\u5165txt\u6587\u4ef6\u4e2d<\/span>\r\n                    file_handle.writelines(<span class=\"hljs-built_in\">str<\/span>(classList.index(shape[<span class=\"hljs-string\">\"label\"<\/span>])) + <span class=\"hljs-string\">\" \"<\/span>)\r\n\r\n                    <span class=\"hljs-comment\"># 8. \u904d\u5386shape\u8f6e\u5ed3\u4e2d\u7684\u6bcf\u4e2a\u70b9\uff0c\u6bcf\u4e2a\u70b9\u8981\u8fdb\u884c\u56fe\u50cf\u5c3a\u5bf8\u7684\u7f29\u653e\uff0c\u5373x\/width, y\/height<\/span>\r\n                    <span class=\"hljs-keyword\">for<\/span> point <span class=\"hljs-keyword\">in<\/span> shape[<span class=\"hljs-string\">\"points\"<\/span>]:\r\n                        x = point[<span class=\"hljs-number\">0<\/span>]\/file_in[<span class=\"hljs-string\">\"imageWidth\"<\/span>]  <span class=\"hljs-comment\"># mask\u8f6e\u5ed3\u4e2d\u4e00\u70b9\u7684X\u5750\u6807<\/span>\r\n                        y = point[<span class=\"hljs-number\">1<\/span>]\/file_in[<span class=\"hljs-string\">\"imageHeight\"<\/span>]  <span class=\"hljs-comment\"># mask\u8f6e\u5ed3\u4e2d\u4e00\u70b9\u7684Y\u5750\u6807<\/span>\r\n                        file_handle.writelines(<span class=\"hljs-built_in\">str<\/span>(x) + <span class=\"hljs-string\">\" \"<\/span> + <span class=\"hljs-built_in\">str<\/span>(y) + <span class=\"hljs-string\">\" \"<\/span>)  <span class=\"hljs-comment\"># \u5199\u5165mask\u8f6e\u5ed3\u70b9<\/span>\r\n\r\n                    <span class=\"hljs-comment\"># 9.\u6bcf\u4e2a\u7269\u4f53\u4e00\u884c\u6570\u636e\uff0c\u4e00\u4e2a\u7269\u4f53\u904d\u5386\u5b8c\u6210\u540e\u9700\u8981\u6362\u884c<\/span>\r\n                    file_handle.writelines(<span class=\"hljs-string\">\"\\n\"<\/span>)\r\n            <span class=\"hljs-comment\"># 10.\u6240\u6709\u7269\u4f53\u90fd\u904d\u5386\u5b8c\uff0c\u9700\u8981\u5173\u95ed\u6587\u4ef6<\/span>\r\n            file_handle.close()\r\n        <span class=\"hljs-comment\"># 10.\u6240\u6709\u7269\u4f53\u90fd\u904d\u5386\u5b8c\uff0c\u9700\u8981\u5173\u95ed\u6587\u4ef6<\/span>\r\n        f.close()\r\n\r\n<span class=\"hljs-keyword\">if<\/span> __name__ == <span class=\"hljs-string\">\"__main__\"<\/span>:\r\n    jsonfilePath = <span class=\"hljs-string\">\"E:\\\\yolo\\\\yolov5-master\\\\datasets\\\\labelme\\\\json\"<\/span>  <span class=\"hljs-comment\"># \u8981\u8f6c\u6362\u7684json\u6587\u4ef6\u6240\u5728\u76ee\u5f55<\/span>\r\n    resultDirPath = <span class=\"hljs-string\">\"E:\\\\yolo\\\\yolov5-master\\\\datasets\\\\labelme\\\\txt\"<\/span>  <span class=\"hljs-comment\"># \u8981\u751f\u6210\u7684txt\u6587\u4ef6\u5939<\/span>\r\n    labelme2yolov2Seg(jsonfilePath=jsonfilePath, resultDirPath=resultDirPath, classList=[<span class=\"hljs-string\">\"YiBiao\"<\/span>, <span class=\"hljs-string\">\"ZhiZhen\"<\/span>])<\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<p><span class=\"cke_widget_wrapper cke_widget_inline cke_widget_csdnlink cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"a \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"a\" data-cke-filter=\"off\" data-cke-widget-id=\"17\" data-cke-widget-wrapper=\"1\"><a class=\"cke_widget_editable cke_widget_element\" title=\"Sign in to Roboflow\" contenteditable=\"true\" href=\"https:\/\/app.roboflow.com\/\" data-cke-enter-mode=\"2\" data-cke-saved-href=\"https:\/\/app.roboflow.com\/\" data-cke-widget-data=\"%7B%22url%22%3A%22https%3A%2F%2Fapp.roboflow.com%2F%22%2C%22text%22%3A%22Sign%20in%20to%20Roboflow%22%2C%22desc%22%3A%22%22%2C%22icon%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22isCard%22%3Afalse%2C%22hasResquest%22%3Atrue%2C%22iconDefault%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22id%22%3A%22EBd1Rw-1729491708049%22%2C%22classes%22%3Anull%7D\" data-cke-widget-editable=\"text\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-link-icon=\"https:\/\/csdnimg.cn\/release\/blog_editor_html\/release2.3.7\/ckeditor\/plugins\/CsdnLink\/icons\/icon-default.png?t=O83A\" data-link-title=\"Sign in to Roboflow\" data-widget=\"csdnlink\" target=\"_blank\"  rel=\"nofollow\" >Sign in to Roboflow<\/a><\/span>\u00a0\u6211\u4eec\u9009\u62e9\u5728\u7ebf\u5e73\u53f0roboflow\u6765\u76f4\u63a5\u6807\u8bb0\uff0c\u751f\u6210txt\uff0c\u65b9\u6cd5\u5982\u4e0b<\/p>\n<p><span class=\"cke_widget_wrapper cke_widget_inline cke_widget_csdnlink cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"a \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"a\" data-cke-filter=\"off\" data-cke-widget-id=\"16\" data-cke-widget-wrapper=\"1\"><a class=\"cke_widget_editable cke_widget_element\" title=\"\u6df1\u5ea6\u5b66\u4e60\uff0810\uff09\u4e4bRoboflow \u4f7f\u7528\u8be6\u89e3\uff1a\u6570\u636e\u96c6\u6807\u6ce8\u3001\u8bad\u7ec3 \u53ca \u4e0b\u8f7d-CSDN\u535a\u5ba2\" contenteditable=\"true\" href=\"https:\/\/blog.csdn.net\/yohnyang\/article\/details\/131353572\" data-cke-enter-mode=\"2\" data-cke-saved-href=\"https:\/\/blog.csdn.net\/yohnyang\/article\/details\/131353572\" data-cke-widget-data=\"%7B%22url%22%3A%22https%3A%2F%2Fblog.csdn.net%2Fyohnyang%2Farticle%2Fdetails%2F131353572%22%2C%22text%22%3A%22%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0%EF%BC%8810%EF%BC%89%E4%B9%8BRoboflow%20%E4%BD%BF%E7%94%A8%E8%AF%A6%E8%A7%A3%EF%BC%9A%E6%95%B0%E6%8D%AE%E9%9B%86%E6%A0%87%E6%B3%A8%E3%80%81%E8%AE%AD%E7%BB%83%20%E5%8F%8A%20%E4%B8%8B%E8%BD%BD-CSDN%E5%8D%9A%E5%AE%A2%22%2C%22desc%22%3A%22%22%2C%22icon%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22isCard%22%3Afalse%2C%22hasResquest%22%3Atrue%2C%22iconDefault%22%3A%22https%3A%2F%2Fcsdnimg.cn%2Frelease%2Fblog_editor_html%2Frelease2.3.7%2Fckeditor%2Fplugins%2FCsdnLink%2Ficons%2Ficon-default.png%3Ft%3DO83A%22%2C%22id%22%3A%22eIZXhW-1729491708046%22%2C%22classes%22%3Anull%7D\" data-cke-widget-editable=\"text\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-link-icon=\"https:\/\/csdnimg.cn\/release\/blog_editor_html\/release2.3.7\/ckeditor\/plugins\/CsdnLink\/icons\/icon-default.png?t=O83A\" data-link-title=\"\u6df1\u5ea6\u5b66\u4e60\uff0810\uff09\u4e4bRoboflow \u4f7f\u7528\u8be6\u89e3\uff1a\u6570\u636e\u96c6\u6807\u6ce8\u3001\u8bad\u7ec3 \u53ca \u4e0b\u8f7d-CSDN\u535a\u5ba2\" data-widget=\"csdnlink\" target=\"_blank\"  rel=\"nofollow\" >\u6df1\u5ea6\u5b66\u4e60\uff0810\uff09\u4e4bRoboflow \u4f7f\u7528\u8be6\u89e3\uff1a\u6570\u636e\u96c6\u6807\u6ce8\u3001\u8bad\u7ec3 \u53ca \u4e0b\u8f7d-CSDN\u535a\u5ba2<\/a><\/span><\/p>\n<h1>yolov5\u6a21\u578b\u8bad\u7ec3<\/h1>\n<p><strong>\u00b7images:\u5b58\u653e\u56fe\u7247<\/strong><br \/>\n\u00b7train\uff1a\u8bad\u7ec3\u96c6\u56fe\u7247<br \/>\n\u00b7val\uff1a\u9a8c\u8bc1\u96c6\u56fe\u7247<br \/>\n<strong>\u00b7labels:\u5b58\u653e\u6807\u7b7e<\/strong><br \/>\n\u00b7train\uff1a\u8bad\u7ec3\u96c6\u6807\u7b7e\u6587\u4ef6\uff0c\u8981\u4e0e\u8bad\u7ec3\u96c6\u56fe\u7247\u540d\u79f0\u4e00\u4e00\u5bf9\u5e94<br \/>\n\u00b7val\uff1a\u9a8c\u8bc1\u96c6\u6807\u7b7e\u6587\u4ef6\uff0c\u8981\u4e0e\u9a8c\u8bc1\u96c6\u56fe\u7247\u540d\u79f0\u4e00\u4e00\u5bf9\u5e94<\/p>\n<p>data\u6587\u4ef6\u5939\u91cc\u9762\uff0c\u628acoco128.yaml\u590d\u5236\u4e00\u4efd\u5728\u6e90\u5730\u5740\uff0c\u6539\u540dbvn.yaml<\/p>\n<p>11\u884c\u540e\u9762\u6240\u6709\u4fee\u6539\u5982\u4e0b<\/p>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"15\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22python%22%2C%22code%22%3A%22path%3A%20.%2Fdatasets%20%20%23%20dataset%20root%20dir%5Cntrain%3A%20images%2Ftrain%20%20%23%20train%20images%20(relative%20to%20'path')%20128%20images%5Cnval%3A%20images%2Fval%20%20%23%20val%20images%20(relative%20to%20'path')%20128%20images%5Cntest%3A%20%20%23%20test%20images%20(optional)%5Cn%5Cn%23%20Classes%5Cnnames%3A%5Cn%20%200%3A%20daitu%5Cn%20%201%3A%20mingren%5Cn%20%20%5Cn%5Cn%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-python hljs\">path: .\/datasets  <span class=\"hljs-comment\"># dataset root dir<\/span>\r\ntrain: images\/train  <span class=\"hljs-comment\"># train images (relative to 'path') 128 images<\/span>\r\nval: images\/val  <span class=\"hljs-comment\"># val images (relative to 'path') 128 images<\/span>\r\ntest:  <span class=\"hljs-comment\"># test images (optional)<\/span>\r\n\r\n<span class=\"hljs-comment\"># Classes<\/span>\r\nnames:\r\n  <span class=\"hljs-number\">0<\/span>: daitu\r\n  <span class=\"hljs-number\">1<\/span>: mingren\r\n  \r\n\r\n<\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<p>train.py\u7b2c439\u884c\uff0c<\/p>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"14\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22python%22%2C%22code%22%3A%22parser.add_argument('--data'%2C%20type%3Dstr%2C%20default%3DROOT%20%2F%20'data%2Fbvn.yaml'%2C%20help%3D'dataset.yaml%20path')%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-python hljs\">parser.add_argument(<span class=\"hljs-string\">'--data'<\/span>, <span class=\"hljs-built_in\">type<\/span>=<span class=\"hljs-built_in\">str<\/span>, default=ROOT \/ <span class=\"hljs-string\">'data\/bvn.yaml'<\/span>, <span class=\"hljs-built_in\">help<\/span>=<span class=\"hljs-string\">'dataset.yaml path'<\/span>)<\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<p>\u8fd0\u884ctrain.py<\/p>\n<p>\u62a5\u9519\u4e86\uff0c\u622a\u56fe\u5982\u4e0b<\/p>\n<p><a href=\"https:\/\/i-blog.csdnimg.cn\/direct\/2e6fdc11a1c34e789c6fb777279aba33.png\" alt=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" title=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/i-blog.csdnimg.cn\/direct\/2e6fdc11a1c34e789c6fb777279aba33.png<\/a><\/p>\n<p>\u54a8\u8be2\u4e86chatgpt\uff0c\u53ea\u8981\u6dfb\u52a0\u4ee3\u7801\u5373\u53ef<\/p>\n<p><a href=\"https:\/\/i-blog.csdnimg.cn\/direct\/4e32bda049de4cd099c18b822849b033.png\" alt=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" title=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/i-blog.csdnimg.cn\/direct\/4e32bda049de4cd099c18b822849b033.png<\/a><br \/>\n\u5728train.py\u6dfb\u52a0\u4ee5\u4e0b\u4ee3\u7801\u5373\u53ef<\/p>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"11\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22python%22%2C%22code%22%3A%22import%20os%5Cnos.environ%5B'KMP_DUPLICATE_LIB_OK'%5D%20%3D%20'TRUE'%5Cn%23%23%23%23%23%E4%B8%8A%E9%9D%A2%E6%98%AF%E4%B8%B4%E6%97%B6%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-python hljs\"><span class=\"hljs-keyword\">import<\/span> os\r\nos.environ[<span class=\"hljs-string\">'KMP_DUPLICATE_LIB_OK'<\/span>] = <span class=\"hljs-string\">'TRUE'<\/span>\r\n<span class=\"hljs-comment\">#####\u4e0a\u9762\u662f\u4e34\u65f6<\/span><\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<h3>\u5e38\u89c1\u95ee\u9898<\/h3>\n<p>Arial.ttf\u5b57\u4f53\u6587\u4ef6\u65e0\u6cd5\u4e0b\u8f7d<br \/>\n\u00b7\u624b\u52a8\u4e0b\u8f7d\uff0c\u653e\u5230\u5bf9\u5e94\u7684\u4f4d\u7f6e\uff0cwindows\u4e0b\u7684\u76ee\u5f55\u662f\uff1a~\/AppData\/Roaming\/Ultralytics<br \/>\n\u00b7\u9875\u9762\u6587\u4ef6\u592a\u5c0f\uff0c\u65e0\u6cd5\u5b8c\u6210\u64cd\u4f5c<br \/>\n\u00b7\u8c03\u6574\u8bad\u7ec3\u53c2\u6570\u4e2d\u7684workers\uff0c\u8bbe\u7f6e\u4e3a1<br \/>\n\u00b7\u4fee\u6539\u865a\u62df\u5185\u5b58\uff0c\u5c06\u73af\u5883\u5b89\u88c5\u4f4d\u7f6e\u6240\u5728\u7684\u76d8\uff0c\u8bbe\u7f6e\u4e00\u4e2a\u8f83\u5927\u7684\u53c2\u6570.'Upsample' object has no attribute 'recompute scale_factor'<br \/>\n\u00b7pytorch\u7248\u672c\u8fc7\u9ad8\u5bfc\u81f4\uff0c\u53ef\u4ee5\u9009\u62e9\u964d\u7248\u672c\uff0c1.8.2\u76ee\u524d\u662f\u4e0d\u4f1a\u62a5\u9519\u7684\u7248\u672c<br \/>\n\u00b7\u5982\u4e0d\u60f3\u964d\u4f4e\u7248\u672c\uff0c\u53ef\u4ee5\u4fee\u6539pytorch\u6e90\u7801\uff0c\u6253\u5f00\u62a5\u9519\u7684unsampling.py\uff0c\u5220\u9664recompute_scale_factor\u8fd9\u4e2a\u53c2\u6570<\/p>\n<p><strong>\u8bad\u7ec3\u6210\u529f\uff01\uff08\u6307\u8fd4\u56de\u503c\u4e3a0\uff09<\/strong><\/p>\n<p>\u5728weights\u4e2d\u6709best\u548cbad.pt\u5bf9\u5e94\u6700\u597d\u548c\u6700\u574f\u6a21\u578b\u3002\u6709\u4e00\u4e2a\u5f88\u957f\u7684\u6587\u4ef6\uff0c\u662f\u4e00\u4e2a\u65e5\u5fd7<\/p>\n<p>\u5728pycharm\u7ec8\u7aef\u8f93\u5165<\/p>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"10\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22python%22%2C%22code%22%3A%22tensorboard%20--logdir%20runs%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-python hljs\">tensorboard --logdir runs<\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<p>\u5373\u53ef\u8df3\u8f6c\u52306006\u7684\u7aef\u53e3<\/p>\n<p><a href=\"https:\/\/i-blog.csdnimg.cn\/direct\/3a6c92149fc34bfebef8ad13e627958a.png\" alt=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" title=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/i-blog.csdnimg.cn\/direct\/3a6c92149fc34bfebef8ad13e627958a.png<\/a><\/p>\n<p><a href=\"https:\/\/i-blog.csdnimg.cn\/direct\/b2a0a1c05eca42e286ccf4efc6de3a17.png\" alt=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" title=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/i-blog.csdnimg.cn\/direct\/b2a0a1c05eca42e286ccf4efc6de3a17.png<\/a><\/p>\n<p>labels.png\u6587\u4ef6\u4e5f\u6709\u4e00\u4e9b\u6570\u636eresults.csv\uff0cresult.png\u662f\u6574\u5408\u7684\u4e00\u4e9b\u6570\u636e<\/p>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"6\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22bash%22%2C%22code%22%3A%22cmd%E4%B8%AD%20%20python%20detect.py%20--weights%20runs%2Ftrain%2Fexp3%2Fweights%2Fbest.pt%20--source%20datasets%2FBVN.MP4%20--view-img%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-bash hljs\">cmd\u4e2d  python detect.py --weights runs\/train\/exp3\/weights\/best.pt --<span class=\"hljs-built_in\">source<\/span> datasets\/BVN.MP4 --view-img<\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<p>\u5176\u5b9e\u6548\u679c\u8fd8\u5c06\u5c31\uff0c\u4f46\u662f\u7ed3\u679c\u544a\u8bc9\u6211\u8981\u6807\u6ce8\u6e05\u6670\u4e00\u4e9b\uff0c\u5426\u5219\u5bb9\u6613\u91cd\u5408\u7ed3\u679c\uff0c5555<\/p>\n<h1>Pyside6\u5b9e\u73b0GUI\u754c\u9762<\/h1>\n<p>\u7ec8\u7aef\u8f93\u5165<\/p>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"5\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22bash%22%2C%22code%22%3A%22pip%20install%20pyside6%5Cn%E7%84%B6%E5%90%8E%5Cnwhere%20python%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-bash hljs\">pip install pyside6\r\n\u7136\u540e\r\n<span class=\"hljs-built_in\">where<\/span> python<\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<p><a href=\"https:\/\/i-blog.csdnimg.cn\/direct\/4f438da08d2d451ca3ee62d6a1a912f1.png\" alt=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" title=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/i-blog.csdnimg.cn\/direct\/4f438da08d2d451ca3ee62d6a1a912f1.png<\/a><\/p>\n<p>D:\\anaconda\\Lib\\site-packages\\PySide6<\/p>\n<p>main windows\u540e\u70b9\u51fb\u521b\u5efa\uff0c\u6258\u4e24\u4e2alabel\uff0c\u8c03\u597d\u5408\u9002\u7684\u5927\u5c0f\u4f4d\u7f6e\uff0cpush button\u83b7\u5f97\u6309\u94ae<\/p>\n<p>\u53f3\u4fa7alignment\u6362\u6210\u6c34\u5e73\u4e2d\u5fc3\u5bf9\u9f50\uff0c\u52fe\u9009scaledconpents<\/p>\n<p>\u6539\u6539\u4fbf\u4e8e\u8bb0\u4f4f\u7684\u6587\u4ef6\u540d\u4fdd\u5b58<\/p>\n<p>\u628a\u4ed6\u53f3\u952ecompile QT UI uic\u7f16\u8bd1\u51fa\u6765\u5f97\u5230py\u6587\u4ef6<\/p>\n<p>\u6dfb\u52a0base_ui.py\uff0c\u628aui_main_window.py\u6dfb\u52a0\u8ba1\u5165\uff0c\u5185\u5bb9\u5982\u4e0b<\/p>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"3\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22python%22%2C%22code%22%3A%22import%20cv2%5Cnimport%20sys%5Cnimport%20torch%5Cnfrom%20PySide6.QtWidgets%20import%20QMainWindow%2C%20QApplication%2C%20QFileDialog%5Cnfrom%20PySide6.QtGui%20import%20QPixmap%2C%20QImage%5Cnfrom%20PySide6.QtCore%20import%20QTimer%5Cn%5Cnfrom%20ui_main_window%20import%20Ui_MainWindow%5Cn%5Cn%5Cndef%20convert2QImage(img)%3A%5Cn%20%20%20%20height%2C%20width%2C%20channel%20%3D%20img.shape%5Cn%20%20%20%20return%20QImage(img%2C%20width%2C%20height%2C%20width%20*%20channel%2C%20QImage.Format_RGB888)%5Cn%5Cn%5Cnclass%20MainWindow(QMainWindow%2C%20Ui_MainWindow)%3A%5Cn%20%20%20%20def%20__init__(self)%3A%5Cn%20%20%20%20%20%20%20%20super(MainWindow%2C%20self).__init__()%5Cn%20%20%20%20%20%20%20%20self.setupUi(self)%5Cn%20%20%20%20%20%20%20%20self.model%20%3D%20torch.hub.load(%5C%22.%2F%5C%22%2C%20%5C%22custom%5C%22%2C%20path%3D%5C%22runs%2Ftrain%2Fexp3%2Fweights%2Fbest.pt%5C%22%2C%20source%3D%5C%22local%5C%22)%5Cn%20%20%20%20%20%20%20%20self.timer%20%3D%20QTimer()%5Cn%20%20%20%20%20%20%20%20self.timer.setInterval(1)%5Cn%20%20%20%20%20%20%20%20self.video%20%3D%20None%5Cn%20%20%20%20%20%20%20%20self.bind_slots()%5Cn%5Cn%20%20%20%20def%20image_pred(self%2C%20file_path)%3A%5Cn%20%20%20%20%20%20%20%20results%20%3D%20self.model(file_path)%5Cn%20%20%20%20%20%20%20%20image%20%3D%20results.render()%5B0%5D%5Cn%20%20%20%20%20%20%20%20return%20convert2QImage(image)%5Cn%5Cn%20%20%20%20def%20open_image(self)%3A%5Cn%20%20%20%20%20%20%20%20print(%5C%22%E7%82%B9%E5%87%BB%E4%BA%86%E6%A3%80%E6%B5%8B%E5%9B%BE%E7%89%87%EF%BC%81%5C%22)%5Cn%20%20%20%20%20%20%20%20self.timer.stop()%5Cn%20%20%20%20%20%20%20%20file_path%20%3D%20QFileDialog.getOpenFileName(self%2C%20dir%3D%5C%22.%2Fdatasets%2Fimages%2Ftrain%5C%22%2C%20filter%3D%5C%22*.jpg%3B*.png%3B*.jpeg%5C%22)%5Cn%20%20%20%20%20%20%20%20if%20file_path%5B0%5D%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20file_path%20%3D%20file_path%5B0%5D%5Cn%20%20%20%20%20%20%20%20%20%20%20%20qimage%20%3D%20self.image_pred(file_path)%5Cn%20%20%20%20%20%20%20%20%20%20%20%20self.input.setPixmap(QPixmap(file_path))%5Cn%20%20%20%20%20%20%20%20%20%20%20%20self.output.setPixmap(QPixmap.fromImage(qimage))%5Cn%5Cn%20%20%20%20def%20video_pred(self)%3A%5Cn%20%20%20%20%20%20%20%20ret%2C%20frame%20%3D%20self.video.read()%5Cn%20%20%20%20%20%20%20%20if%20not%20ret%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20self.timer.stop()%5Cn%20%20%20%20%20%20%20%20else%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20frame%20%3D%20cv2.cvtColor(frame%2C%20cv2.COLOR_BGR2RGB)%5Cn%20%20%20%20%20%20%20%20%20%20%20%20self.input.setPixmap(QPixmap.fromImage(convert2QImage(frame)))%5Cn%20%20%20%20%20%20%20%20%20%20%20%20results%20%3D%20self.model(frame)%5Cn%20%20%20%20%20%20%20%20%20%20%20%20image%20%3D%20results.render()%5B0%5D%5Cn%20%20%20%20%20%20%20%20%20%20%20%20self.output.setPixmap(QPixmap.fromImage(convert2QImage(image)))%5Cn%5Cn%20%20%20%20def%20open_video(self)%3A%5Cn%20%20%20%20%20%20%20%20print(%5C%22%E7%82%B9%E5%87%BB%E4%BA%86%E6%A3%80%E6%B5%8B%E8%A7%86%E9%A2%91%EF%BC%81%5C%22)%5Cn%20%20%20%20%20%20%20%20file_path%20%3D%20QFileDialog.getOpenFileName(self%2C%20dir%3D%5C%22.%2Fdatasets%5C%22%2C%20filter%3D%5C%22*.mp4%5C%22)%5Cn%20%20%20%20%20%20%20%20if%20file_path%5B0%5D%3A%5Cn%20%20%20%20%20%20%20%20%20%20%20%20file_path%20%3D%20file_path%5B0%5D%5Cn%20%20%20%20%20%20%20%20%20%20%20%20self.video%20%3D%20cv2.VideoCapture(file_path)%5Cn%20%20%20%20%20%20%20%20%20%20%20%20self.timer.start()%5Cn%5Cn%20%20%20%20def%20bind_slots(self)%3A%5Cn%20%20%20%20%20%20%20%20self.det_image.clicked.connect(self.open_image)%5Cn%20%20%20%20%20%20%20%20self.det_video.clicked.connect(self.open_video)%5Cn%20%20%20%20%20%20%20%20self.timer.timeout.connect(self.video_pred)%5Cn%5Cn%5Cnif%20__name__%20%3D%3D%20%5C%22__main__%5C%22%3A%5Cn%20%20%20%20app%20%3D%20QApplication(sys.argv)%5Cn%5Cn%20%20%20%20window%20%3D%20MainWindow()%5Cn%20%20%20%20window.show()%5Cn%5Cn%20%20%20%20app.exec()%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-python hljs\"><span class=\"hljs-keyword\">import<\/span> cv2\r\n<span class=\"hljs-keyword\">import<\/span> sys\r\n<span class=\"hljs-keyword\">import<\/span> torch\r\n<span class=\"hljs-keyword\">from<\/span> PySide6.QtWidgets <span class=\"hljs-keyword\">import<\/span> QMainWindow, QApplication, QFileDialog\r\n<span class=\"hljs-keyword\">from<\/span> PySide6.QtGui <span class=\"hljs-keyword\">import<\/span> QPixmap, QImage\r\n<span class=\"hljs-keyword\">from<\/span> PySide6.QtCore <span class=\"hljs-keyword\">import<\/span> QTimer\r\n\r\n<span class=\"hljs-keyword\">from<\/span> ui_main_window <span class=\"hljs-keyword\">import<\/span> Ui_MainWindow\r\n\r\n\r\n<span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">convert2QImage<\/span>(<span class=\"hljs-params\">img<\/span>):\r\n    height, width, channel = img.shape\r\n    <span class=\"hljs-keyword\">return<\/span> QImage(img, width, height, width * channel, QImage.Format_RGB888)\r\n\r\n\r\n<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">MainWindow<\/span>(QMainWindow, Ui_MainWindow):\r\n    <span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">__init__<\/span>(<span class=\"hljs-params\">self<\/span>):\r\n        <span class=\"hljs-built_in\">super<\/span>(MainWindow, self).__init__()\r\n        self.setupUi(self)\r\n        self.model = torch.hub.load(<span class=\"hljs-string\">\".\/\"<\/span>, <span class=\"hljs-string\">\"custom\"<\/span>, path=<span class=\"hljs-string\">\"runs\/train\/exp3\/weights\/best.pt\"<\/span>, source=<span class=\"hljs-string\">\"local\"<\/span>)\r\n        self.timer = QTimer()\r\n        self.timer.setInterval(<span class=\"hljs-number\">1<\/span>)\r\n        self.video = <span class=\"hljs-literal\">None<\/span>\r\n        self.bind_slots()\r\n\r\n    <span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">image_pred<\/span>(<span class=\"hljs-params\">self, file_path<\/span>):\r\n        results = self.model(file_path)\r\n        image = results.render()[<span class=\"hljs-number\">0<\/span>]\r\n        <span class=\"hljs-keyword\">return<\/span> convert2QImage(image)\r\n\r\n    <span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">open_image<\/span>(<span class=\"hljs-params\">self<\/span>):\r\n        <span class=\"hljs-built_in\">print<\/span>(<span class=\"hljs-string\">\"\u70b9\u51fb\u4e86\u68c0\u6d4b\u56fe\u7247\uff01\"<\/span>)\r\n        self.timer.stop()\r\n        file_path = QFileDialog.getOpenFileName(self, <span class=\"hljs-built_in\">dir<\/span>=<span class=\"hljs-string\">\".\/datasets\/images\/train\"<\/span>, <span class=\"hljs-built_in\">filter<\/span>=<span class=\"hljs-string\">\"*.jpg;*.png;*.jpeg\"<\/span>)\r\n        <span class=\"hljs-keyword\">if<\/span> file_path[<span class=\"hljs-number\">0<\/span>]:\r\n            file_path = file_path[<span class=\"hljs-number\">0<\/span>]\r\n            qimage = self.image_pred(file_path)\r\n            self.<span class=\"hljs-built_in\">input<\/span>.setPixmap(QPixmap(file_path))\r\n            self.output.setPixmap(QPixmap.fromImage(qimage))\r\n\r\n    <span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">video_pred<\/span>(<span class=\"hljs-params\">self<\/span>):\r\n        ret, frame = self.video.read()\r\n        <span class=\"hljs-keyword\">if<\/span> <span class=\"hljs-keyword\">not<\/span> ret:\r\n            self.timer.stop()\r\n        <span class=\"hljs-keyword\">else<\/span>:\r\n            frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)\r\n            self.<span class=\"hljs-built_in\">input<\/span>.setPixmap(QPixmap.fromImage(convert2QImage(frame)))\r\n            results = self.model(frame)\r\n            image = results.render()[<span class=\"hljs-number\">0<\/span>]\r\n            self.output.setPixmap(QPixmap.fromImage(convert2QImage(image)))\r\n\r\n    <span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">open_video<\/span>(<span class=\"hljs-params\">self<\/span>):\r\n        <span class=\"hljs-built_in\">print<\/span>(<span class=\"hljs-string\">\"\u70b9\u51fb\u4e86\u68c0\u6d4b\u89c6\u9891\uff01\"<\/span>)\r\n        file_path = QFileDialog.getOpenFileName(self, <span class=\"hljs-built_in\">dir<\/span>=<span class=\"hljs-string\">\".\/datasets\"<\/span>, <span class=\"hljs-built_in\">filter<\/span>=<span class=\"hljs-string\">\"*.mp4\"<\/span>)\r\n        <span class=\"hljs-keyword\">if<\/span> file_path[<span class=\"hljs-number\">0<\/span>]:\r\n            file_path = file_path[<span class=\"hljs-number\">0<\/span>]\r\n            self.video = cv2.VideoCapture(file_path)\r\n            self.timer.start()\r\n\r\n    <span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">bind_slots<\/span>(<span class=\"hljs-params\">self<\/span>):\r\n        self.det_image.clicked.connect(self.open_image)\r\n        self.det_video.clicked.connect(self.open_video)\r\n        self.timer.timeout.connect(self.video_pred)\r\n\r\n\r\n<span class=\"hljs-keyword\">if<\/span> __name__ == <span class=\"hljs-string\">\"__main__\"<\/span>:\r\n    app = QApplication(sys.argv)\r\n\r\n    window = MainWindow()\r\n    window.show()\r\n\r\n    app.<span class=\"hljs-built_in\">exec<\/span>()<\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<p>\u5176\u5b9e\u662f\u4e00\u4e2apyqt\uff0c\u6709cppqt\u57fa\u7840\u7684\u5e94\u8be5\u53ef\u4ee5\u4e0d\u77e5\u9053\u4e3a\u4ec0\u4e48\u53ea\u80fd\u770b \uff1f<\/p>\n<p>\u539f\u6765\u662f\u7f3a\u4e00\u4e2a\u6587\u4ef6<\/p>\n<h1>Gradio\u642d\u5efa\u6f14\u793aWeb GUI<\/h1>\n<p>\u00b7Gradio\u662f\u4e00\u4e2a\u5f00\u6e90\u7684Python\u5e93\uff0c\u7528\u4e8e\u6784\u5efa\u673a\u5668\u5b66\u4e60\u6f14\u793a\u548cWeb\u5e94\u7528<br \/>\n\u00b7\u5185\u7f6e\u4e30\u5bcc\u7684\u7ec4\u4ef6\uff0c\u5e76\u4e14\u5b9e\u73b0\u4e86\u524d\u540e\u7aef\u7684\u4ea4\u4e92\u903b\u8f91\uff0c\u65e0\u9700\u989d\u5916\u7f16\u5199\u4ee3\u7801<\/p>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"2\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22python%22%2C%22code%22%3A%22pip%20install%20gradio%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-python hljs\">pip install gradio<\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<p>\u4e66\u5199gradio_demo.py<\/p>\n<div class=\"cke_widget_wrapper cke_widget_block cke_widget_codeSnippet cke_widget_selected\" tabindex=\"-1\" role=\"region\" contenteditable=\"false\" aria-label=\"\u4ee3\u7801\u6bb5 \u5c0f\u90e8\u4ef6\" data-cke-display-name=\"\u4ee3\u7801\u6bb5\" data-cke-filter=\"off\" data-cke-widget-id=\"1\" data-cke-widget-wrapper=\"1\">\n<pre class=\"cke_widget_element\" data-cke-widget-data=\"%7B%22lang%22%3A%22python%22%2C%22code%22%3A%22import%20torch%5Cnimport%20gradio%20as%20gr%5Cn%5Cnmodel%20%3D%20torch.hub.load(%5C%22.%2F%5C%22%2C%20%5C%22custom%5C%22%2C%20path%3D%5C%22runs%2Ftrain%2Fexp3%2Fweights%2Fbest.pt%5C%22%2C%20source%3D%5C%22local%5C%22)%5Cn%5Cntitle%20%3D%20%5C%22%E5%9F%BA%E4%BA%8EGradio%E7%9A%84YOLOv5%E6%BC%94%E7%A4%BA%E9%A1%B9%E7%9B%AE%5C%22%5Cn%5Cndesc%20%3D%20%5C%22%E8%BF%99%E6%98%AF%E4%B8%80%E4%B8%AA%E5%9F%BA%E4%BA%8EGradio%E7%9A%84YOLOv5%E6%BC%94%E7%A4%BA%E9%A1%B9%E7%9B%AE%EF%BC%8C%E9%9D%9E%E5%B8%B8%E7%AE%80%E6%B4%81%EF%BC%8C%E9%9D%9E%E5%B8%B8%E6%96%B9%E4%BE%BF%EF%BC%81%5C%22%5Cn%5Cnbase_conf%2C%20base_iou%20%3D%200.25%2C%200.45%5Cn%5Cndef%20det_image(img%2C%20conf_thres%2C%20iou_thres)%3A%5Cn%20%20%20%20model.conf%20%3D%20conf_thres%5Cn%20%20%20%20model.iou%20%3D%20iou_thres%5Cn%20%20%20%20return%20model(img).render()%5B0%5D%5Cn%5Cngr.Interface(inputs%3D%5B%5C%22image%5C%22%2C%20gr.Slider(minimum%3D0%2C%20maximum%3D1%2C%20value%3Dbase_conf)%2C%20gr.Slider(minimum%3D0%2C%20maximum%3D1%2C%20value%3Dbase_iou)%5D%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20outputs%3D%5B%5C%22image%5C%22%5D%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20fn%3Ddet_image%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20title%3Dtitle%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20description%3Ddesc%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20live%3DTrue%2C%5Cn%20%20%20%20%20%20%20%20%20%20%20%20%20examples%3D%5B%5B%5C%22.%2Fdatasets%2Fimages%2Ftrain%2F30.jpg%5C%22%2C%20base_conf%2C%20base_iou%5D%2C%20%5B%5C%22.%2Fdatasets%2Fimages%2Ftrain%2F60.jpg%5C%22%2C%200.3%2C%20base_iou%5D%5D).launch(share%3DTrue)%5Cn%5Cn%22%2C%22classes%22%3Anull%7D\" data-cke-widget-keep-attr=\"0\" data-cke-widget-upcasted=\"1\" data-widget=\"codeSnippet\"><code class=\"language-python hljs\"><span class=\"hljs-keyword\">import<\/span> torch\r\n<span class=\"hljs-keyword\">import<\/span> gradio <span class=\"hljs-keyword\">as<\/span> gr\r\n\r\nmodel = torch.hub.load(<span class=\"hljs-string\">\".\/\"<\/span>, <span class=\"hljs-string\">\"custom\"<\/span>, path=<span class=\"hljs-string\">\"runs\/train\/exp3\/weights\/best.pt\"<\/span>, source=<span class=\"hljs-string\">\"local\"<\/span>)\r\n\r\ntitle = <span class=\"hljs-string\">\"\u57fa\u4e8eGradio\u7684YOLOv5\u6f14\u793a\u9879\u76ee\"<\/span>\r\n\r\ndesc = <span class=\"hljs-string\">\"\u8fd9\u662f\u4e00\u4e2a\u57fa\u4e8eGradio\u7684YOLOv5\u6f14\u793a\u9879\u76ee\uff0c\u975e\u5e38\u7b80\u6d01\uff0c\u975e\u5e38\u65b9\u4fbf\uff01\"<\/span>\r\n\r\nbase_conf, base_iou = <span class=\"hljs-number\">0.25<\/span>, <span class=\"hljs-number\">0.45<\/span>\r\n\r\n<span class=\"hljs-keyword\">def<\/span> <span class=\"hljs-title function_\">det_image<\/span>(<span class=\"hljs-params\">img, conf_thres, iou_thres<\/span>):\r\n    model.conf = conf_thres\r\n    model.iou = iou_thres\r\n    <span class=\"hljs-keyword\">return<\/span> model(img).render()[<span class=\"hljs-number\">0<\/span>]\r\n\r\ngr.Interface(inputs=[<span class=\"hljs-string\">\"image\"<\/span>, gr.Slider(minimum=<span class=\"hljs-number\">0<\/span>, maximum=<span class=\"hljs-number\">1<\/span>, value=base_conf), gr.Slider(minimum=<span class=\"hljs-number\">0<\/span>, maximum=<span class=\"hljs-number\">1<\/span>, value=base_iou)],\r\n             outputs=[<span class=\"hljs-string\">\"image\"<\/span>],\r\n             fn=det_image,\r\n             title=title,\r\n             description=desc,\r\n             live=<span class=\"hljs-literal\">True<\/span>,\r\n             examples=[[<span class=\"hljs-string\">\".\/datasets\/images\/train\/30.jpg\"<\/span>, base_conf, base_iou], [<span class=\"hljs-string\">\".\/datasets\/images\/train\/60.jpg\"<\/span>, <span class=\"hljs-number\">0.3<\/span>, base_iou]]).launch(share=<span class=\"hljs-literal\">True<\/span>)\r\n\r\n<\/code><\/pre>\n<p><span class=\"cke_reset cke_widget_drag_handler_container\"><img loading=\"lazy\" decoding=\"async\" class=\"cke_reset cke_widget_drag_handler\" title=\"\u70b9\u51fb\u5e76\u62d6\u62fd\u4ee5\u79fb\u52a8\" role=\"presentation\" src=\"data:image\/gif;base64,R0lGODlhAQABAPABAP\/\/\/wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==\" width=\"15\" height=\"15\" data-cke-widget-drag-handler=\"1\" \/><\/span><\/p>\n<\/div>\n<p>\u76f4\u63a5\u586b\u5199image\u505a\u4e86\u4e00\u4e2a\u6620\u5c04\uff0c\u672c\u8d28\u4e0a\u8c03\u4e86gr.Image()\u7ec4\u4ef6<\/p>\n<p>\u8fd0\u884c\u540e\u53ef\u80fd\u4f1a\u6709\u70b9\u5361\uff0c\u6700\u540eexamples\u662flist<\/p>\n<p><a href=\"https:\/\/i-blog.csdnimg.cn\/direct\/4972605010c24fdea414d1d9eafa438d.png\" alt=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" title=\"YOLOV5\u5b9e\u6218\u5168\u90e8\u6d41\u7a0b\" target=\"_blank\"  rel=\"nofollow\" >https:\/\/i-blog.csdnimg.cn\/direct\/4972605010c24fdea414d1d9eafa438d.png<\/a><\/p>\n<p>\u5728launch\u8bbe\u5b9a\u8fd9\u91cc\uff0c\u6362\u6210true\uff0c\u90a3\u4e48\u5c31\u4f1a\u628a\u670d\u52a1\u653e\u5728\u516c\u7f51\u4e0a<\/p>\n<p><span data-cke-copybin-end=\"1\">\u200b<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u79d1\u751f\u9636\u6bb5\u9664\u4e86\u5728\u4e2d\u7b49\u4ee5\u4e0a\u7684985\u548c\u67d0\u4e9b\u7279\u5b9a\u7684CS\u5f3a\u9879\u9662\u6821\uff0c\u65e0\u610f\u613f\u7814\u7a76\u751f\u5b66\u4e60\u7684\u672c\u79d1\u751f\u662f\u4e0d\u5efa\u8bae\u5b66\u4e60\u4eba\u5de5\u667a\u80fd\u8fd9\u4e00\u4e13\u4e1a\u7684\uff0c\u4fdd\u7814\u5b66\u751f\u4e5f\u8bb8\u53ef\u4ee5 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"emotion":"","emotion_color":"","title_style":"","license":"","footnotes":""},"categories":[3],"tags":[6,5],"class_list":["post-103","post","type-post","status-publish","format-standard","hentry","category-3","tag-cv","tag-yolo"],"_links":{"self":[{"href":"https:\/\/eve2333.top\/index.php?rest_route=\/wp\/v2\/posts\/103","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/eve2333.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/eve2333.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/eve2333.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/eve2333.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=103"}],"version-history":[{"count":0,"href":"https:\/\/eve2333.top\/index.php?rest_route=\/wp\/v2\/posts\/103\/revisions"}],"wp:attachment":[{"href":"https:\/\/eve2333.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=103"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/eve2333.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=103"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/eve2333.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}