{"metadata":{"colab":{"provenance":[]},"kernelspec":{"name":"python3","display_name":"Python 3","language":"python"},"accelerator":"GPU","widgets":{"application/vnd.jupyter.widget-state+json":{"311a15c0b78d490c892ef01b292f2c83":{"model_module":"@jupyter-widgets/controls","model_name":"HBoxModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HBoxModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HBoxView","box_style":"","children":["IPY_MODEL_1568df73cace46de9d627c05ae3a1941","IPY_MODEL_1f966fbc76ad4345bd6438da359a1f91","IPY_MODEL_b3e3ce4942be4970a74e388a42edef94"],"layout":"IPY_MODEL_18268b727e19452baab98d3ee8924d5d"}},"1568df73cace46de9d627c05ae3a1941":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_a90875e1870e40789f2de1777c4eed55","placeholder":"​","style":"IPY_MODEL_15e6e8edd98841d6b1be3146478c1a4b","value":"100%"}},"1f966fbc76ad4345bd6438da359a1f91":{"model_module":"@jupyter-widgets/controls","model_name":"FloatProgressModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"FloatProgressModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"ProgressView","bar_style":"success","description":"","description_tooltip":null,"layout":"IPY_MODEL_2ac31dd9fe8348d68c8538f5e04a6c28","max":2,"min":0,"orientation":"horizontal","style":"IPY_MODEL_6af3fe82bd3e407caf3163bb3efdbcdf","value":2}},"b3e3ce4942be4970a74e388a42edef94":{"model_module":"@jupyter-widgets/controls","model_name":"HTMLModel","model_module_version":"1.5.0","state":{"_dom_classes":[],"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"HTMLModel","_view_count":null,"_view_module":"@jupyter-widgets/controls","_view_module_version":"1.5.0","_view_name":"HTMLView","description":"","description_tooltip":null,"layout":"IPY_MODEL_2709aca54b134e52a6f7eeb103d0c6cb","placeholder":"​","style":"IPY_MODEL_e0b1118300514b97aa500bb55cb88045","value":" 2/2 [00:01&lt;00:00,  1.57it/s]"}},"18268b727e19452baab98d3ee8924d5d":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"a90875e1870e40789f2de1777c4eed55":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"15e6e8edd98841d6b1be3146478c1a4b":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}},"2ac31dd9fe8348d68c8538f5e04a6c28":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"6af3fe82bd3e407caf3163bb3efdbcdf":{"model_module":"@jupyter-widgets/controls","model_name":"ProgressStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"ProgressStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","bar_color":null,"description_width":""}},"2709aca54b134e52a6f7eeb103d0c6cb":{"model_module":"@jupyter-widgets/base","model_name":"LayoutModel","model_module_version":"1.2.0","state":{"_model_module":"@jupyter-widgets/base","_model_module_version":"1.2.0","_model_name":"LayoutModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"LayoutView","align_content":null,"align_items":null,"align_self":null,"border":null,"bottom":null,"display":null,"flex":null,"flex_flow":null,"grid_area":null,"grid_auto_columns":null,"grid_auto_flow":null,"grid_auto_rows":null,"grid_column":null,"grid_gap":null,"grid_row":null,"grid_template_areas":null,"grid_template_columns":null,"grid_template_rows":null,"height":null,"justify_content":null,"justify_items":null,"left":null,"margin":null,"max_height":null,"max_width":null,"min_height":null,"min_width":null,"object_fit":null,"object_position":null,"order":null,"overflow":null,"overflow_x":null,"overflow_y":null,"padding":null,"right":null,"top":null,"visibility":null,"width":null}},"e0b1118300514b97aa500bb55cb88045":{"model_module":"@jupyter-widgets/controls","model_name":"DescriptionStyleModel","model_module_version":"1.5.0","state":{"_model_module":"@jupyter-widgets/controls","_model_module_version":"1.5.0","_model_name":"DescriptionStyleModel","_view_count":null,"_view_module":"@jupyter-widgets/base","_view_module_version":"1.2.0","_view_name":"StyleView","description_width":""}}}},"language_info":{"name":"python","version":"3.10.13","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"},"kaggle":{"accelerator":"gpu","dataSources":[{"sourceId":13032,"databundleVersionId":862545,"sourceType":"competition"}],"isInternetEnabled":true,"language":"python","sourceType":"notebook","isGpuEnabled":true}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Github Repo\nhttps://github.com/levindabhi/cloth-segmentation","metadata":{"id":"PYTJTsOD30GN"}},{"cell_type":"code","source":"%cd /kaggle/working\n!rm -rf cloth-segmentation\n!git clone https://github.com/NHP-Research/cloth-segmentation.git","metadata":{"id":"HVVgm8h0itel","outputId":"9b51a4d4-2e28-4c11-eb80-e4dffc1ef041","execution":{"iopub.status.busy":"2024-05-17T15:13:18.894537Z","iopub.execute_input":"2024-05-17T15:13:18.894917Z","iopub.status.idle":"2024-05-17T15:13:22.858455Z","shell.execute_reply.started":"2024-05-17T15:13:18.894864Z","shell.execute_reply":"2024-05-17T15:13:22.857462Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%cd /kaggle/working/cloth-segmentation\n!git pull","metadata":{"execution":{"iopub.status.busy":"2024-05-17T16:36:35.82557Z","iopub.execute_input":"2024-05-17T16:36:35.826545Z","iopub.status.idle":"2024-05-17T16:36:37.133402Z","shell.execute_reply.started":"2024-05-17T16:36:35.82649Z","shell.execute_reply":"2024-05-17T16:36:37.132361Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Training","metadata":{"id":"LpOzd4Kv3lZq"}},{"cell_type":"code","source":"!pip install tensorboardX\n!pip install gdown","metadata":{"id":"WTUTEDYh3rH8","execution":{"iopub.status.busy":"2024-05-17T15:13:22.860481Z","iopub.execute_input":"2024-05-17T15:13:22.860817Z","iopub.status.idle":"2024-05-17T15:13:48.105569Z","shell.execute_reply.started":"2024-05-17T15:13:22.860785Z","shell.execute_reply":"2024-05-17T15:13:48.104418Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%cd /kaggle/working/cloth-segmentation\n# !python -m torch.distributed.launch --nnodes=1 --node_rank=0 --nproc_per_node=2 --use_env train.py\n!python train.py","metadata":{"scrolled":true,"execution":{"iopub.status.busy":"2024-05-17T15:14:36.400066Z","iopub.execute_input":"2024-05-17T15:14:36.400456Z","iopub.status.idle":"2024-05-17T16:13:35.193126Z","shell.execute_reply.started":"2024-05-17T15:14:36.400422Z","shell.execute_reply":"2024-05-17T16:13:35.191714Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Download checkpoints","metadata":{}},{"cell_type":"code","source":"%cd /kaggle/working\n!ls /kaggle/working/cloth-segmentation/results/training_cloth_segm_u2net_exp1/checkpoints","metadata":{"execution":{"iopub.status.busy":"2024-05-17T16:22:05.563462Z","iopub.execute_input":"2024-05-17T16:22:05.564203Z","iopub.status.idle":"2024-05-17T16:22:06.514381Z","shell.execute_reply.started":"2024-05-17T16:22:05.564169Z","shell.execute_reply":"2024-05-17T16:22:06.513222Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"%cd /kaggle/working\nfrom IPython.display import FileLink\n# FileLink(r'cloth-segmentation/results/training_cloth_segm_u2net_exp1/checkpoints/itr_00000000_u2net.pth')\n# FileLink(r'cloth-segmentation/results/training_cloth_segm_u2net_exp1/checkpoints/itr_00001000_u2net.pth')\n# FileLink(r'cloth-segmentation/results/training_cloth_segm_u2net_exp1/checkpoints/itr_00002000_u2net.pth')\nFileLink(r'cloth-segmentation/results/training_cloth_segm_u2net_exp1/checkpoints/itr_00003000_u2net.pth')","metadata":{"execution":{"iopub.status.busy":"2024-05-17T16:25:54.525664Z","iopub.execute_input":"2024-05-17T16:25:54.52659Z","iopub.status.idle":"2024-05-17T16:25:54.535131Z","shell.execute_reply.started":"2024-05-17T16:25:54.526554Z","shell.execute_reply":"2024-05-17T16:25:54.534141Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Inference","metadata":{"id":"IqtOPE_a3np3"}},{"cell_type":"code","source":"# https://github.com/wildoctopus/huggingface-cloth-segmentation?tab=readme-ov-file\n%cd /kaggle/working/cloth-segmentation\n# !gdown --id 1mhF3yqd7R-Uje092eypktNl-RoZNuiCJ\n!gdown --id 11xTBALOeUkyuaK3l60CpkYHLTmv7k3dY\n!mkdir input_images\n!mkdir output_images","metadata":{"id":"lAFCCQWGfTtT","outputId":"310cdc68-a172-4f45-9d29-a09b7de79ce8","execution":{"iopub.status.busy":"2024-05-17T16:27:04.713962Z","iopub.execute_input":"2024-05-17T16:27:04.71444Z","iopub.status.idle":"2024-05-17T16:27:13.015652Z","shell.execute_reply.started":"2024-05-17T16:27:04.7144Z","shell.execute_reply":"2024-05-17T16:27:13.014465Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Upload input images in *input_images* folder.\n\n","metadata":{"id":"IqvP16OtiKHu"}},{"cell_type":"code","source":"%cd /kaggle/working/cloth-segmentation\n# !python infer.py # origin inference code in repo\n!python infer2.py # inference code in google colab","metadata":{"id":"wNPEQFXSj1cr","outputId":"219c50a2-f611-4a9a-d6ba-ee99679dc545","execution":{"iopub.status.busy":"2024-05-17T16:37:41.956056Z","iopub.execute_input":"2024-05-17T16:37:41.956778Z","iopub.status.idle":"2024-05-17T16:37:48.429989Z","shell.execute_reply.started":"2024-05-17T16:37:41.956741Z","shell.execute_reply":"2024-05-17T16:37:48.428799Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Download results from *output_images*","metadata":{"id":"bRtjAtdvig6u"}},{"cell_type":"code","source":"!rm -rf output_images/*","metadata":{"id":"S-W3khgQiz1K"},"execution_count":null,"outputs":[]}]}