├── README.md └── segment-anything-py.ipynb /README.md: -------------------------------------------------------------------------------- 1 | # segment-anything-py 2 | This is a repository where I show how to use the segment-anything-py package 3 | -------------------------------------------------------------------------------- /segment-anything-py.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "source": [ 6 | "# Segment-anything-py\n", 7 | "\n", 8 | "[Docs](https://pypi.org/project/segment-anything-py/)" 9 | ], 10 | "metadata": { 11 | "collapsed": false 12 | } 13 | }, 14 | { 15 | "cell_type": "code", 16 | "execution_count": 1, 17 | "metadata": { 18 | "collapsed": true, 19 | "ExecuteTime": { 20 | "start_time": "2023-05-08T11:56:35.248444Z", 21 | "end_time": "2023-05-08T11:56:40.193348Z" 22 | } 23 | }, 24 | "outputs": [ 25 | { 26 | "name": "stdout", 27 | "output_type": "stream", 28 | "text": [ 29 | "Collecting segment-anything-py\r\n", 30 | " Downloading segment_anything_py-1.0-py3-none-any.whl (40 kB)\r\n", 31 | "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m40.2/40.2 kB\u001B[0m \u001B[31m1.0 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\r\n", 32 | "\u001B[?25hRequirement already satisfied: torch>=1.7 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from segment-anything-py) (2.0.0)\r\n", 33 | "Requirement already satisfied: torchvision>=0.8 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from segment-anything-py) (0.15.1)\r\n", 34 | "Requirement already satisfied: filelock in /Users/erictak/miniconda3/lib/python3.10/site-packages (from torch>=1.7->segment-anything-py) (3.12.0)\r\n", 35 | "Requirement already satisfied: typing-extensions in /Users/erictak/miniconda3/lib/python3.10/site-packages (from torch>=1.7->segment-anything-py) (4.4.0)\r\n", 36 | "Requirement already satisfied: sympy in /Users/erictak/miniconda3/lib/python3.10/site-packages (from torch>=1.7->segment-anything-py) (1.11.1)\r\n", 37 | "Requirement already satisfied: networkx in /Users/erictak/miniconda3/lib/python3.10/site-packages (from torch>=1.7->segment-anything-py) (2.8.4)\r\n", 38 | "Requirement already satisfied: jinja2 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from torch>=1.7->segment-anything-py) (3.1.2)\r\n", 39 | "Requirement already satisfied: numpy in /Users/erictak/miniconda3/lib/python3.10/site-packages (from torchvision>=0.8->segment-anything-py) (1.23.5)\r\n", 40 | "Requirement already satisfied: requests in /Users/erictak/miniconda3/lib/python3.10/site-packages (from torchvision>=0.8->segment-anything-py) (2.28.1)\r\n", 41 | "Requirement already satisfied: pillow!=8.3.*,>=5.3.0 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from torchvision>=0.8->segment-anything-py) (9.4.0)\r\n", 42 | "Requirement already satisfied: MarkupSafe>=2.0 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from jinja2->torch>=1.7->segment-anything-py) (2.1.1)\r\n", 43 | "Requirement already satisfied: charset-normalizer<3,>=2 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from requests->torchvision>=0.8->segment-anything-py) (2.0.4)\r\n", 44 | "Requirement already satisfied: idna<4,>=2.5 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from requests->torchvision>=0.8->segment-anything-py) (3.4)\r\n", 45 | "Requirement already satisfied: urllib3<1.27,>=1.21.1 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from requests->torchvision>=0.8->segment-anything-py) (1.26.15)\r\n", 46 | "Requirement already satisfied: certifi>=2017.4.17 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from requests->torchvision>=0.8->segment-anything-py) (2022.12.7)\r\n", 47 | "Requirement already satisfied: mpmath>=0.19 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from sympy->torch>=1.7->segment-anything-py) (1.3.0)\r\n", 48 | "Installing collected packages: segment-anything-py\r\n", 49 | "Successfully installed segment-anything-py-1.0\r\n" 50 | ] 51 | } 52 | ], 53 | "source": [ 54 | "!pip install segment-anything-py" 55 | ] 56 | }, 57 | { 58 | "cell_type": "code", 59 | "execution_count": 2, 60 | "outputs": [ 61 | { 62 | "name": "stdout", 63 | "output_type": "stream", 64 | "text": [ 65 | "Collecting opencv-python\r\n", 66 | " Downloading opencv_python-4.7.0.72-cp37-abi3-macosx_10_16_x86_64.whl (53.9 MB)\r\n", 67 | "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m53.9/53.9 MB\u001B[0m \u001B[31m7.3 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m00:01\u001B[0m00:01\u001B[0mm\r\n", 68 | "\u001B[?25hCollecting pycocotools\r\n", 69 | " Downloading pycocotools-2.0.6.tar.gz (24 kB)\r\n", 70 | " Installing build dependencies ... \u001B[?25ldone\r\n", 71 | "\u001B[?25h Getting requirements to build wheel ... \u001B[?25ldone\r\n", 72 | "\u001B[?25h Preparing metadata (pyproject.toml) ... \u001B[?25ldone\r\n", 73 | "\u001B[?25hRequirement already satisfied: matplotlib in /Users/erictak/miniconda3/lib/python3.10/site-packages (3.7.1)\r\n", 74 | "Collecting onnxruntime\r\n", 75 | " Downloading onnxruntime-1.14.1-cp310-cp310-macosx_10_15_x86_64.whl (6.6 MB)\r\n", 76 | "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m6.6/6.6 MB\u001B[0m \u001B[31m10.9 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0ma \u001B[36m0:00:01\u001B[0m\r\n", 77 | "\u001B[?25hCollecting onnx\r\n", 78 | " Downloading onnx-1.14.0-cp310-cp310-macosx_10_12_x86_64.whl (13.8 MB)\r\n", 79 | "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m13.8/13.8 MB\u001B[0m \u001B[31m17.4 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m00:01\u001B[0m00:01\u001B[0m\r\n", 80 | "\u001B[?25hRequirement already satisfied: numpy>=1.21.2 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from opencv-python) (1.23.5)\r\n", 81 | "Requirement already satisfied: contourpy>=1.0.1 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from matplotlib) (1.0.7)\r\n", 82 | "Requirement already satisfied: cycler>=0.10 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from matplotlib) (0.11.0)\r\n", 83 | "Requirement already satisfied: fonttools>=4.22.0 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from matplotlib) (4.39.2)\r\n", 84 | "Requirement already satisfied: kiwisolver>=1.0.1 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from matplotlib) (1.4.4)\r\n", 85 | "Requirement already satisfied: packaging>=20.0 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from matplotlib) (23.0)\r\n", 86 | "Requirement already satisfied: pillow>=6.2.0 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from matplotlib) (9.4.0)\r\n", 87 | "Requirement already satisfied: pyparsing>=2.3.1 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from matplotlib) (3.0.9)\r\n", 88 | "Requirement already satisfied: python-dateutil>=2.7 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from matplotlib) (2.8.2)\r\n", 89 | "Collecting coloredlogs (from onnxruntime)\r\n", 90 | " Downloading coloredlogs-15.0.1-py2.py3-none-any.whl (46 kB)\r\n", 91 | "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m46.0/46.0 kB\u001B[0m \u001B[31m3.1 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\r\n", 92 | "\u001B[?25hRequirement already satisfied: flatbuffers in /Users/erictak/miniconda3/lib/python3.10/site-packages (from onnxruntime) (23.3.3)\r\n", 93 | "Requirement already satisfied: protobuf in /Users/erictak/miniconda3/lib/python3.10/site-packages (from onnxruntime) (3.20.3)\r\n", 94 | "Requirement already satisfied: sympy in /Users/erictak/miniconda3/lib/python3.10/site-packages (from onnxruntime) (1.11.1)\r\n", 95 | "Requirement already satisfied: typing-extensions>=3.6.2.1 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from onnx) (4.4.0)\r\n", 96 | "Requirement already satisfied: six>=1.5 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from python-dateutil>=2.7->matplotlib) (1.16.0)\r\n", 97 | "Collecting humanfriendly>=9.1 (from coloredlogs->onnxruntime)\r\n", 98 | " Downloading humanfriendly-10.0-py2.py3-none-any.whl (86 kB)\r\n", 99 | "\u001B[2K \u001B[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001B[0m \u001B[32m86.8/86.8 kB\u001B[0m \u001B[31m4.6 MB/s\u001B[0m eta \u001B[36m0:00:00\u001B[0m\r\n", 100 | "\u001B[?25hRequirement already satisfied: mpmath>=0.19 in /Users/erictak/miniconda3/lib/python3.10/site-packages (from sympy->onnxruntime) (1.3.0)\r\n", 101 | "Building wheels for collected packages: pycocotools\r\n", 102 | " Building wheel for pycocotools (pyproject.toml) ... \u001B[?25ldone\r\n", 103 | "\u001B[?25h Created wheel for pycocotools: filename=pycocotools-2.0.6-cp310-cp310-macosx_10_9_x86_64.whl size=87331 sha256=c422eb8edd8503fae46077a1ae86bf37bdf114dc5659141584247b1c55f44a23\r\n", 104 | " Stored in directory: /Users/erictak/Library/Caches/pip/wheels/58/e6/f9/f87c8f8be098b51b616871315318329cae12cdb618f4caac93\r\n", 105 | "Successfully built pycocotools\r\n", 106 | "Installing collected packages: opencv-python, onnx, humanfriendly, coloredlogs, pycocotools, onnxruntime\r\n", 107 | "Successfully installed coloredlogs-15.0.1 humanfriendly-10.0 onnx-1.14.0 onnxruntime-1.14.1 opencv-python-4.7.0.72 pycocotools-2.0.6\r\n" 108 | ] 109 | } 110 | ], 111 | "source": [ 112 | "# other dependencies\n", 113 | "! pip install opencv-python pycocotools matplotlib onnxruntime onnx" 114 | ], 115 | "metadata": { 116 | "collapsed": false, 117 | "ExecuteTime": { 118 | "start_time": "2023-05-08T11:57:42.188751Z", 119 | "end_time": "2023-05-08T11:58:14.913487Z" 120 | } 121 | } 122 | }, 123 | { 124 | "cell_type": "code", 125 | "execution_count": 3, 126 | "outputs": [ 127 | { 128 | "ename": "KeyError", 129 | "evalue": "''", 130 | "output_type": "error", 131 | "traceback": [ 132 | "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m", 133 | "\u001B[0;31mKeyError\u001B[0m Traceback (most recent call last)", 134 | "Cell \u001B[0;32mIn[3], line 2\u001B[0m\n\u001B[1;32m 1\u001B[0m \u001B[38;5;28;01mfrom\u001B[39;00m \u001B[38;5;21;01msegment_anything\u001B[39;00m \u001B[38;5;28;01mimport\u001B[39;00m SamPredictor, sam_model_registry\n\u001B[0;32m----> 2\u001B[0m sam \u001B[38;5;241m=\u001B[39m \u001B[43msam_model_registry\u001B[49m\u001B[43m[\u001B[49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[38;5;124;43m\u001B[39;49m\u001B[38;5;124;43m\"\u001B[39;49m\u001B[43m]\u001B[49m(checkpoint\u001B[38;5;241m=\u001B[39m\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124msam_vit_h_4b8939.pth\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n\u001B[1;32m 3\u001B[0m predictor \u001B[38;5;241m=\u001B[39m SamPredictor(sam)\n\u001B[1;32m 4\u001B[0m predictor\u001B[38;5;241m.\u001B[39mset_image(\u001B[38;5;124m'\u001B[39m\u001B[38;5;124mbreakfast.jpg\u001B[39m\u001B[38;5;124m'\u001B[39m)\n", 135 | "\u001B[0;31mKeyError\u001B[0m: ''" 136 | ] 137 | } 138 | ], 139 | "source": [ 140 | "from segment_anything import SamPredictor, sam_model_registry\n", 141 | "sam = sam_model_registry[\"\"](checkpoint=\"\")\n", 142 | "predictor = SamPredictor(sam)\n", 143 | "predictor.set_image()\n", 144 | "masks, _, _ = predictor.predict()" 145 | ], 146 | "metadata": { 147 | "collapsed": false 148 | } 149 | } 150 | ], 151 | "metadata": { 152 | "kernelspec": { 153 | "display_name": "Python 3", 154 | "language": "python", 155 | "name": "python3" 156 | }, 157 | "language_info": { 158 | "codemirror_mode": { 159 | "name": "ipython", 160 | "version": 2 161 | }, 162 | "file_extension": ".py", 163 | "mimetype": "text/x-python", 164 | "name": "python", 165 | "nbconvert_exporter": "python", 166 | "pygments_lexer": "ipython2", 167 | "version": "2.7.6" 168 | } 169 | }, 170 | "nbformat": 4, 171 | "nbformat_minor": 0 172 | } 173 | --------------------------------------------------------------------------------