{"id":775,"date":"2024-12-04T08:00:41","date_gmt":"2024-12-04T00:00:41","guid":{"rendered":"https:\/\/www.zhoubin.asia\/?p=775"},"modified":"2024-12-04T07:10:13","modified_gmt":"2024-12-03T23:10:13","slug":"yolo-world_v1","status":"publish","type":"post","link":"https:\/\/www.zhoubin.asia\/index.php\/2024\/12\/04\/yolo-world_v1\/","title":{"rendered":"\u5982\u4f55\u5bfc\u51faYOLO-World\u7684ONNX\u6a21\u578b"},"content":{"rendered":"<p>\u6211\u4eec\u4f7f\u7528\u7684\u662f\u8fd9\u4e2a<a href=\"https:\/\/github.com\/AILab-CVC\/YOLO-World.git\">GitHub<\/a>\u4ed3\u5e93\uff1a: <code>4826695a84ce370dad7fe4cb555a6c7162f3751d<\/code><\/p>\n<h2>1. \u4e0b\u8f7d\u9884\u8bad\u7ec3\u7684PTH\u6587\u4ef6<\/h2>\n<p>\u9996\u5148\u9700\u8981\u4ece Hugging Face \u4e0b\u8f7d\u9884\u8bad\u7ec3\u597d\u7684 PTH \u6587\u4ef6\uff0c\u53c2\u8003\u94fe\u63a5\uff1a<a href=\"https:\/\/huggingface.co\/wondervictor\/YOLO-World\/blob\/main\/yolo_world_v2_m_obj365v1_goldg_pretrain-c6237d5b.pth\">yolo_world_v2_m_obj365v1_goldg_pretrain.pth<\/a><\/p>\n<h2>2. \u51c6\u5907\u73af\u5883<\/h2>\n<p>\u4ee5\u4e0b\u662f\u6211\u6240\u4f7f\u7528\u7684\u57fa\u7840\u73af\u5883\u914d\u7f6e\uff1a<\/p>\n<ul>\n<li>\u64cd\u4f5c\u7cfb\u7edf\uff1aUbuntu 22.04<\/li>\n<li>CUDA\u7248\u672c\uff1a11.8<\/li>\n<\/ul>\n<h3>a. \u521b\u5efa\u865a\u62df\u73af\u5883<\/h3>\n<p>\u4f7f\u7528 <code>virtualenv<\/code> \u521b\u5efa\u865a\u62df\u73af\u5883\uff1a<\/p>\n<pre><code>virtualenv env\r\nsource env\/bin\/activate<\/code><\/pre>\n<h3>b. \u5b89\u88c5\u5bf9\u5e94\u7684 PyTorch \u7248\u672c<\/h3>\n<p>\u8bf7\u52a1\u5fc5\u4f7f\u7528 <code>torch==1.11.0<\/code> \u5e76\u4e14\u4f7f\u7528 CUDA \u7248\u672c\u3002\u4ee5\u4e0b\u662f\u6211\u7684\u5b89\u88c5<a href=\"https:\/\/pytorch.org\/get-started\/previous-versions\/\">\u547d\u4ee4<\/a>\uff1a<\/p>\n<pre><code># CUDA 11.3\r\npip install torch==1.11.0+cu113 torchvision==0.12.0+cu113 torchaudio==0.11.0 --extra-index-url https:\/\/download.pytorch.org\/whl\/cu113<\/code><\/pre>\n<h3>c. \u5b89\u88c5 MMCV<\/h3>\n<p>\u5b89\u88c5 <code><a href=\"https:\/\/mmcv.readthedocs.io\/en\/latest\/get_started\/installation.html\">mmcv<\/a><\/code>\uff1a<\/p>\n<pre><code>pip install openmim\r\nmim install mmcv==2.0.0<\/code><\/pre>\n<h3>d. \u5b89\u88c5\u5408\u9002\u7684 numpy \u7248\u672c<\/h3>\n<p>\u6211\u53d1\u73b0\u9ed8\u8ba4\u5b89\u88c5\u7684 numpy \u7248\u672c\u8fc7\u9ad8\uff082.*\uff09\uff0c\u5378\u8f7d\u540e\u5b89\u88c5 1.* \u7248\u672c\uff0c\u4f8b\u5982 1.24.4\uff1a<\/p>\n<pre><code>pip uninstall numpy\r\npip install numpy==1.24.4<\/code><\/pre>\n<h3>e. \u5b89\u88c5\u5176\u4ed6\u4f9d\u8d56<\/h3>\n<p>\u5b89\u88c5 <code>requirements<\/code> \u6587\u4ef6\u4e2d\u5217\u51fa\u7684\u5176\u4ed6\u4f9d\u8d56\u5305\u3002\u5176\u4e2d\uff0c<code>basic_requirements.txt<\/code> \u4e2d\u7684 <code>#opencv-python-headless==4.2.0.34<\/code> \u88ab\u6211\u7981\u7528\uff0c\u56e0\u4e3a\u8fd9\u4e2a\u7248\u672c\u5728\u6211\u7684\u73af\u5883\u4e2d\u65e0\u6cd5\u5b89\u88c5\u6210\u529f\u3002<\/p>\n<h3>f. \u62f7\u8d1d mmyolo \u6e90\u7801<\/h3>\n<p>\u9700\u8981\u5c06 mmyolo \u7684\u6e90\u7801\u62f7\u8d1d\u5230 yolo-world \u76ee\u5f55\u4e0b, \u8bf7\u6ce8\u610f\u4f7f\u7528\u7248\u672cv0.6.0\uff1a<\/p>\n<pre><code>git clone https:\/\/github.com\/open-mmlab\/mmyolo.git third_party<\/code><\/pre>\n<h3>g. \u62f7\u8d1d\u914d\u7f6e\u6587\u4ef6<\/h3>\n<p>\u5c06\u6b64\u6587\u4ef6\u62f7\u8d1d\u5230\u5bf9\u5e94\u7684 <code>data\/coco\/lvis\/<\/code> \u76ee\u5f55\u4e2d\uff1a<a href=\"https:\/\/huggingface.co\/GLIPModel\/GLIP\/blob\/main\/lvis_v1_minival_inserted_image_name.json\">lvis_v1_minival_inserted_image_name.json<\/a><\/p>\n<h3>h. \u914d\u7f6e Hugging Face \u4ee3\u7406<\/h3>\n<p>\u6b64\u6a21\u578b\u5bfc\u51fa\u65f6\u9700\u8981\u4f9d\u8d56\u8fd0\u884c Hugging Face \u4e2d\u7684 Clip \u6a21\u578b\uff0c\u800c\u56fd\u5185\u8fde\u63a5 Hugging Face \u4e0d\u592a\u7a33\u5b9a\uff0c\u5efa\u8bae\u4f7f\u7528\u4ee3\u7406\u3002\u53ef\u4ee5\u901a\u8fc7\u4ee5\u4e0b\u547d\u4ee4\u8bbe\u7f6e\u4ee3\u7406\uff1a<\/p>\n<pre><code>export http_proxy=http:\/\/192.168.0.106:7890\r\nexport https_proxy=http:\/\/192.168.0.106:7890\r\nexport all_proxy=socks5:\/\/192.168.0.106:7890<\/code><\/pre>\n<p>\u8fd9\u91cc\u7684 IP \u5730\u5740\u548c\u7aef\u53e3\u53ef\u4ee5\u6839\u636e\u4f60\u5c40\u57df\u7f51\u4e2d\u5df2\u652f\u6301 VPN \u7684 Windows \u673a\u5668\u6765\u8bbe\u7f6e\u3002<\/p>\n<h2>3. \u5bfc\u51fa\u6a21\u578b<\/h2>\n<p>\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\u6765\u5bfc\u51fa ONNX \u6a21\u578b\uff1a<\/p>\n<pre><code>PYTHONPATH=.\/ python deploy\/export_onnx.py configs\/pretrain\/yolo_world_v2_m_vlpan_bn_2e-3_100e_4x8gpus_obj365v1_goldg_train_lvis_minival.py weights\/yolo_world_v2_m_obj365v1_goldg_pretrain-c6237d5b.pth --simplify --opset 12 --without-bbox-decoder --without-nms<\/code><\/pre>\n<p>\u6ce8\u610f\uff1a\u8fd9\u91cc\u7684 <code>--without-bbox-decoder<\/code> \u4e00\u5b9a\u8981\u6709\uff0c\u5426\u5219\u6a21\u578b\u65e0\u6cd5\u6210\u529f\u5bfc\u51fa\u4e3a ONNX \u683c\u5f0f\u3002<\/p>\n<h2>4. \u63a8\u7406\u6a21\u578b<\/h2>\n<p>\u63a8\u7406\u6a21\u578b\u65f6\u53ef\u4ee5\u4f7f\u7528\u4ee5\u4e0b\u547d\u4ee4\uff1a<\/p>\n<pre><code>PYTHONPATH=.\/ python deploy\/onnx_demo.py --onnx-nms work_dirs\/yolo_world_v2_m_obj365v1_goldg_pretrain-c6237d5b.onnx 2.jpg  data\/texts\/coco_class_texts.json<\/code><\/pre>\n<p>\u4f46\u6211\u5728\u63a8\u7406\u65f6\u6ca1\u6709\u5f97\u5230\u7ed3\u679c\uff0c\u76ee\u524d\u8fd8\u5728\u6392\u67e5\u53ef\u80fd\u7684\u539f\u56e0\u3002<\/p>\n<p>PS: \u6211\u8fd9\u8fb9\u7684pip requirements.txt\u73af\u5883<\/p>\n<pre><code>addict==2.4.0\r\naiofiles==23.2.1\r\nalbucore==0.0.20\r\nalbumentations==1.4.21\r\naliyun-python-sdk-core==2.16.0\r\naliyun-python-sdk-kms==2.16.5\r\naltair==5.5.0\r\nannotated-types==0.7.0\r\nanyio==4.6.2.post1\r\nattrs==24.2.0\r\ncertifi==2024.8.30\r\ncffi==1.17.1\r\ncharset-normalizer==3.4.0\r\nclick==8.1.7\r\ncolorama==0.4.6\r\ncoloredlogs==15.0.1\r\ncontourpy==1.3.1\r\ncrcmod==1.7\r\ncryptography==44.0.0\r\ncycler==0.12.1\r\nCython==3.0.11\r\ndefusedxml==0.7.1\r\neval_type_backport==0.2.0\r\nexceptiongroup==1.2.2\r\nfastapi==0.115.5\r\nffmpy==0.4.0\r\nfilelock==3.14.0\r\nflatbuffers==24.3.25\r\nfonttools==4.55.1\r\nfsspec==2024.10.0\r\ngradio==4.16.0\r\ngradio_client==0.8.1\r\nh11==0.14.0\r\nhttpcore==1.0.7\r\nhttpx==0.28.0\r\nhuggingface-hub==0.26.3\r\nhumanfriendly==10.0\r\nidna==3.10\r\nimportlib_resources==6.4.5\r\nJinja2==3.1.4\r\njmespath==0.10.0\r\njsonschema==4.23.0\r\njsonschema-specifications==2024.10.1\r\nkiwisolver==1.4.7\r\nlvis @ git+https:\/\/github.com\/lvis-dataset\/lvis-api.git@7d7f07def11da91f8b2710ce352c62a78fd5a7ad\r\nMarkdown==3.7\r\nmarkdown-it-py==3.0.0\r\nMarkupSafe==2.1.5\r\nmatplotlib==3.9.3\r\nmdurl==0.1.2\r\nmmcv==2.0.0\r\nmmdet==3.0.0\r\nmmengine==0.10.3\r\nmmyolo==0.6.0\r\nmodel-index==0.1.11\r\nmpmath==1.3.0\r\nnarwhals==1.15.1\r\nnumpy==1.24.4\r\nonnx==1.17.0\r\nonnxruntime==1.20.1\r\nonnxsim==0.4.36\r\nopencv-python==4.9.0.80\r\nopencv-python-headless==4.10.0.84\r\nopendatalab==0.0.10\r\nopenmim==0.3.9\r\nopenxlab==0.1.2\r\nordered-set==4.1.0\r\norjson==3.10.12\r\noss2==2.17.0\r\npackaging==24.2\r\npandas==2.2.3\r\npillow==10.4.0\r\nplatformdirs==4.3.6\r\nprettytable==3.12.0\r\nprotobuf==5.29.0\r\npycocotools==2.0.8\r\npycparser==2.22\r\npycryptodome==3.21.0\r\npydantic==2.10.2\r\npydantic_core==2.27.1\r\npydub==0.25.1\r\nPygments==2.18.0\r\npyparsing==3.2.0\r\npython-dateutil==2.9.0.post0\r\npython-multipart==0.0.19\r\npytz==2023.4\r\nPyYAML==6.0.2\r\nreferencing==0.35.1\r\nregex==2024.11.6\r\nrequests==2.28.2\r\nrich==13.4.2\r\nrpds-py==0.22.0\r\nruff==0.8.1\r\nsafetensors==0.4.5\r\nscipy==1.14.1\r\nsemantic-version==2.10.0\r\nshapely==2.0.6\r\nshellingham==1.5.4\r\nsimsimd==6.2.1\r\nsix==1.16.0\r\nsniffio==1.3.1\r\nstarlette==0.41.3\r\nstringzilla==3.11.0\r\nsupervision==0.25.0\r\nsympy==1.13.3\r\ntabulate==0.9.0\r\ntermcolor==2.5.0\r\nterminaltables==3.1.10\r\ntimm==0.6.13\r\ntokenizers==0.20.3\r\ntomli==2.2.1\r\ntomlkit==0.12.0\r\ntorch==1.11.0+cu113\r\ntorchaudio==0.11.0\r\ntorchvision==0.12.0+cu113\r\ntqdm==4.65.2\r\ntransformers==4.46.3\r\ntyper==0.14.0\r\ntyping_extensions==4.12.2\r\ntzdata==2024.2\r\nurllib3==1.26.20\r\nuvicorn==0.32.1\r\nwcwidth==0.2.13\r\nwebsockets==11.0.3\r\nyapf==0.43.0\r\n<\/code><\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6211\u4eec\u4f7f\u7528\u7684\u662f\u8fd9\u4e2aGitHub\u4ed3\u5e93\uff1a: 4826695a84ce370dad7fe4cb555a6c7162f3 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"categories":[15,12],"tags":[],"class_list":["post-775","post","type-post","status-publish","format-standard","hentry","category-ai","category-others"],"_links":{"self":[{"href":"https:\/\/www.zhoubin.asia\/index.php\/wp-json\/wp\/v2\/posts\/775","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhoubin.asia\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.zhoubin.asia\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhoubin.asia\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.zhoubin.asia\/index.php\/wp-json\/wp\/v2\/comments?post=775"}],"version-history":[{"count":1,"href":"https:\/\/www.zhoubin.asia\/index.php\/wp-json\/wp\/v2\/posts\/775\/revisions"}],"predecessor-version":[{"id":776,"href":"https:\/\/www.zhoubin.asia\/index.php\/wp-json\/wp\/v2\/posts\/775\/revisions\/776"}],"wp:attachment":[{"href":"https:\/\/www.zhoubin.asia\/index.php\/wp-json\/wp\/v2\/media?parent=775"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.zhoubin.asia\/index.php\/wp-json\/wp\/v2\/categories?post=775"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhoubin.asia\/index.php\/wp-json\/wp\/v2\/tags?post=775"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}