{"id":4696,"date":"2024-09-05T23:35:38","date_gmt":"2024-09-05T15:35:38","guid":{"rendered":"https:\/\/www.aqwu.net\/wp\/?p=4696"},"modified":"2024-09-05T23:37:00","modified_gmt":"2024-09-05T15:37:00","slug":"%e4%bd%bf%e7%94%a8-rmbg-1-4%e5%88%a0%e9%99%a4%e8%83%8c%e6%99%af","status":"publish","type":"post","link":"https:\/\/www.aqwu.net\/wp\/?p=4696","title":{"rendered":"\u4f7f\u7528 RMBG-1.4\u5220\u9664\u80cc\u666f"},"content":{"rendered":"\n<p>RMBG v1.4 \u662f\u6700\u5148\u8fdb\u7684\u80cc\u666f\u53bb\u9664\u6a21\u578b\uff0c\u65e8\u5728\u6709\u6548\u5730\u5c06\u4e00\u7cfb\u5217\u7c7b\u522b\u548c\u56fe\u50cf\u7c7b\u578b\u7684\u524d\u666f\u4e0e\u80cc\u666f\u5206\u5f00\u3002\u8be5\u6a21\u578b\u5df2\u5728\u7cbe\u5fc3\u6311\u9009\u7684\u6570\u636e\u96c6\u4e0a\u8fdb\u884c\u4e86\u8bad\u7ec3\uff0c\u5176\u4e2d\u5305\u62ec\uff1a\u4e00\u822c\u5e93\u5b58\u56fe\u50cf\u3001\u7535\u5b50\u5546\u52a1\u3001\u6e38\u620f\u548c\u5e7f\u544a\u5185\u5bb9\uff0c\u4f7f\u5176\u9002\u7528\u4e8e\u652f\u6301\u5927\u89c4\u6a21\u4f01\u4e1a\u5185\u5bb9\u521b\u5efa\u7684\u5546\u4e1a\u7528\u4f8b\u3002\u5176\u51c6\u786e\u6027\u3001\u6548\u7387\u548c\u591a\u529f\u80fd\u6027\u76ee\u524d\u53ef\u4e0e\u9886\u5148\u7684 Source Available \u578b\u53f7\u76f8\u5ab2\u7f8e\u3002\u5728\u5185\u5bb9\u5b89\u5168\u3001\u5408\u6cd5\u8bb8\u53ef\u7684\u6570\u636e\u96c6\u548c\u504f\u89c1\u7f13\u89e3\u81f3\u5173\u91cd\u8981\u7684\u60c5\u51b5\u4e0b\uff0c\u5b83\u662f\u7406\u60f3\u7684\u9009\u62e9\u3002<\/p>\n\n\n\n<p>\u6a21\u578b\u94fe\u63a5\uff1a<a href=\"https:\/\/huggingface.co\/briaai\/RMBG-1.4\">https:\/\/huggingface.co\/briaai\/RMBG-1.4<\/a><\/p>\n\n\n\n<p>Demo \u94fe\u63a5\uff1a<a href=\"https:\/\/huggingface.co\/spaces\/briaai\/BRIA-RMBG-1.4\">https:\/\/huggingface.co\/spaces\/briaai\/BRIA-RMBG-1.4<\/a><\/p>\n\n\n\n<p>\u4e0b\u9762\u662f\u6d4b\u8bd5\u7684\u4ee3\u7801\uff1a<\/p>\n\n\n\n<div class=\"wp-block-urvanov-syntax-highlighter-code-block\"><pre class=\"lang:python decode:true \">import streamlit as st\nfrom transformers import pipeline\nfrom PIL import Image\nimport io\nfrom streamlit_image_comparison import image_comparison\n\n# \u5b9a\u4e49\u5220\u9664\u80cc\u666f\u6a21\u578b\ndef load_model():\n    return pipeline(\"image-segmentation\", model=\"briaai\/RMBG-1.4\", trust_remote_code=True)\n\n# \u5904\u7406\u56fe\u50cf\u7684\u51fd\u6570\ndef process_image(pipe, image):\n    # \u5904\u7406\u56fe\u7247\uff1a\u83b7\u53d6\u5220\u9664\u80cc\u666f\u540e\u7684\u56fe\u50cf\u548c mask\n    pillow_mask = pipe(image, return_mask=True)  # \u83b7\u53d6\u906e\u7f69\n    pillow_image = pipe(image)  # \u5e94\u7528\u906e\u7f69\u540e\u7684\u56fe\u50cf\n\n    # \u5c06\u7ed3\u679c\u4fdd\u5b58\u4e3a\u4e34\u65f6\u6587\u4ef6\n    mask_buffer = io.BytesIO()\n    pillow_mask.save(mask_buffer, format=\"PNG\")\n    mask_buffer.seek(0)\n\n    image_buffer = io.BytesIO()\n    pillow_image.save(image_buffer, format=\"PNG\")\n    image_buffer.seek(0)\n\n    return pillow_mask, pillow_image, mask_buffer, image_buffer\n\n# \u4e3b\u51fd\u6570\uff0c\u7528\u4e8e\u8fd0\u884c Streamlit \u5e94\u7528\ndef main():\n    # \u52a0\u8f7d\u6a21\u578b\n    pipe = load_model()\n\n    # Streamlit \u9875\u9762\u8bbe\u7f6e\n    st.title(\"\u5220\u9664\u80cc\u666f\u5de5\u5177\")\n    st.write(\"\u8bf7\u4e0a\u4f20\u4e00\u5f20\u56fe\u7247\u8fdb\u884c\u5904\u7406\")\n\n    # \u4e0a\u4f20\u56fe\u7247\u6587\u4ef6\n    uploaded_file = st.file_uploader(\"\u9009\u62e9\u4e00\u5f20\u56fe\u7247\", type=[\"jpg\", \"jpeg\", \"png\"])\n\n    # \u5982\u679c\u4e0a\u4f20\u4e86\u56fe\u7247\uff0c\u663e\u793a\u539f\u56fe\u5e76\u63d0\u4f9b\u5220\u9664\u80cc\u666f\u6309\u94ae\n    if uploaded_file is not None:\n        # \u8bfb\u53d6\u5e76\u663e\u793a\u539f\u56fe\n        image = Image.open(uploaded_file)\n\n        # \u521b\u5efa\u4e00\u5217\u7528\u4e8e\u663e\u793a\u4e0a\u4f20\u7684\u6587\u4ef6\u548c\u5220\u9664\u80cc\u666f\u6309\u94ae\n        col1, _ = st.columns([2, 1])\n\n        with col1:\n            st.subheader(\"\u539f\u56fe\")\n            st.image(image, caption=\"\u4e0a\u4f20\u7684\u539f\u56fe\", use_column_width=True)\n            \n            # \u5c06\u5220\u9664\u80cc\u666f\u6309\u94ae\u653e\u5728\u56fe\u7247\u4e0b\u9762\n            if st.button(\"\u5220\u9664\u80cc\u666f\"):\n                # \u8c03\u7528\u5220\u9664\u80cc\u666f\u7684\u51fd\u6570\n                pillow_mask, pillow_image, mask_buffer, image_buffer = process_image(pipe, image)\n\n                # \u5c06\u5904\u7406\u7ed3\u679c\u4fdd\u5b58\u5230 session_state \u4e2d\n                st.session_state[\"pillow_mask\"] = pillow_mask\n                st.session_state[\"pillow_image\"] = pillow_image\n                st.session_state[\"original_image\"] = image\n                st.session_state[\"mask_buffer\"] = mask_buffer\n                st.session_state[\"image_buffer\"] = image_buffer\n\n    # \u5982\u679c\u5df2\u7ecf\u5904\u7406\u8fc7\u56fe\u50cf\uff0c\u663e\u793a\u5220\u9664\u80cc\u666f\u524d\u540e\u5bf9\u6bd4\n    if \"pillow_mask\" in st.session_state and \"pillow_image\" in st.session_state:\n        original_image = st.session_state[\"original_image\"]\n        processed_mask = st.session_state[\"pillow_mask\"]\n        processed_image = st.session_state[\"pillow_image\"]\n\n        # \u521b\u5efa\u4e24\u5217\u7528\u4e8e\u663e\u793a\u5220\u9664\u80cc\u666f\u540e\u7684 Mask \u548c Output \u56fe\u50cf\n        col1, col2 = st.columns(2)\n\n        with col1:\n            st.subheader(\"\u5220\u9664\u80cc\u666f\u7684 Mask\")\n            st.image(processed_mask, caption=\"\u5220\u9664\u80cc\u666f\u7684 Mask\", use_column_width=True)\n            st.download_button(label=\"\u4e0b\u8f7d\u906e\u7f69\u56fe\u50cf\", data=st.session_state[\"mask_buffer\"], file_name=\"output_mask.png\", mime=\"image\/png\")\n\n        with col2:\n            st.subheader(\"\u5220\u9664\u80cc\u666f\u540e\u7684\u56fe\u50cf\")\n            st.image(processed_image, caption=\"\u5220\u9664\u80cc\u666f\u540e\u7684\u56fe\u50cf\", use_column_width=True)\n            st.download_button(label=\"\u4e0b\u8f7d\u5220\u9664\u80cc\u666f\u540e\u7684\u56fe\u50cf\", data=st.session_state[\"image_buffer\"], file_name=\"output_image.png\", mime=\"image\/png\")\n\n        # \u63d0\u4f9b\u4e0b\u8f7d\u94fe\u63a5\n\n        # \u663e\u793a\u56fe\u50cf\u5bf9\u6bd4\u5de5\u5177\n        st.subheader(\"\u5220\u9664\u80cc\u666f\u524d\u540e\u5bf9\u6bd4\")\n        image_comparison(\n            img1=original_image,\n            img2=processed_image,\n            label1=\"\u539f\u56fe\",\n            label2=\"\u5220\u9664\u80cc\u666f\u540e\u56fe\u50cf\"\n        )\n\n# \u8fd0\u884c\u4e3b\u51fd\u6570\nif __name__ == \"__main__\":\n    main()\n<\/pre><\/div>\n\n\n\n<p>\u5b9e\u73b0\u7b80\u5355\u7684\u6587\u4ef6\u4e0a\u4f20\uff0c\u4f1a\u663e\u793a\u5904\u7406\u540e\u7684\u56fe\u50cf\u548c mask,\u4ee5\u53ca\u5bf9\u6bd4\u60c5\u51b5\uff0c\u4e0b\u9762\u662f\u6837\u4f8b\u56fe\u7247<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"422\" height=\"781\" src=\"https:\/\/www.aqwu.net\/wp\/wp-content\/uploads\/2024\/09\/\u56fe\u7247.png\" alt=\"\" class=\"wp-image-4698\" srcset=\"https:\/\/www.aqwu.net\/wp\/wp-content\/uploads\/2024\/09\/\u56fe\u7247.png 422w, https:\/\/www.aqwu.net\/wp\/wp-content\/uploads\/2024\/09\/\u56fe\u7247-162x300.png 162w\" sizes=\"auto, (max-width: 422px) 100vw, 422px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>RMBG v1.4 \u662f\u6700\u5148\u8fdb\u7684\u80cc\u666f\u53bb\u9664\u6a21\u578b\uff0c\u65e8\u5728\u6709\u6548\u5730\u5c06\u4e00\u7cfb\u5217\u7c7b\u522b\u548c\u56fe\u50cf\u7c7b\u578b\u7684\u524d\u666f\u4e0e\u80cc\u666f\u5206\u5f00\u3002\u8be5\u6a21\u578b\u5df2\u5728\u7cbe\u5fc3\u6311 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[444,443,442],"tags":[546,547],"class_list":["post-4696","post","type-post","status-publish","format-standard","hentry","category-ai","category-llm","category-llms","tag-rmbg-1-4","tag-547"],"views":1552,"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/posts\/4696","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4696"}],"version-history":[{"count":2,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/posts\/4696\/revisions"}],"predecessor-version":[{"id":4699,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=\/wp\/v2\/posts\/4696\/revisions\/4699"}],"wp:attachment":[{"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4696"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4696"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.aqwu.net\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4696"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}