{"id":22120392,"url":"https://github.com/znitche/piva","last_synced_at":"2025-07-25T12:33:16.323Z","repository":{"id":213434548,"uuid":"728256754","full_name":"zNitche/piVA","owner":"zNitche","description":"Raspberry Pi powered Vision Assistant","archived":true,"fork":false,"pushed_at":"2024-04-30T17:51:22.000Z","size":2300,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-24T06:34:32.729Z","etag":null,"topics":["objects-detection","ocr","python3","raspberry-pi","text-to-speech","vision-assistance"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zNitche.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-06T15:02:02.000Z","updated_at":"2024-06-29T00:19:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"be9c236d-7c3a-43ef-9086-c04172f5820f","html_url":"https://github.com/zNitche/piVA","commit_stats":null,"previous_names":["znitche/piva"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zNitche/piVA","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2FpiVA","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2FpiVA/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2FpiVA/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2FpiVA/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zNitche","download_url":"https://codeload.github.com/zNitche/piVA/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zNitche%2FpiVA/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267007598,"owners_count":24020261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-25T02:00:09.625Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["objects-detection","ocr","python3","raspberry-pi","text-to-speech","vision-assistance"],"created_at":"2024-12-01T14:23:12.405Z","updated_at":"2025-07-25T12:33:15.696Z","avatar_url":"https://github.com/zNitche.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# piVA\nRaspberry Pi powered Vision Assistant\n\n---\n\nThis project was aimed to be a little bit different, my intention was to create \nminimum viable product (`MVP`) but considering lack of time and errors at hardware\nplanning phase it turned to be more like proof of concept (`POC`).\nDespite this, the goal of building this device with the parts I had on hand has been achieved.\n\nAnyway, here is the device that can help blind people perform everyday activities.\n\n### Features\n \n- Integration with speech synthesizer (in this case espeak).\n- Audio jack for headphones connection.\n- Objects detection.\n- OCR.\n- Standalone power source + usb-c charging.\n- Buttons for easier controls.\n- Turn on/off switch.\n\n### POC Missing Features\n\n- Battery level monitoring.\n- 3D printed case, that makes device mobile.\n\n### Usage\n\n2 bottom buttons are for navigation between available modules.\nTop one is for executing currently selected module.\nEvery step (current module change, module executing) is described by speech synthesizer.\n\n### Parts\n![parts](.media/parts.jpg)\n\n| Part Name                   | Quantity |\n|-----------------------------|:--------:|\n| RaspberryPi Zero 2          |    1     |\n| prototype circuit board     |    2     |\n| sd card                     |    1     |\n| RaspberryPi Camera v2       |    1     |\n| 5mm ARK connector           |    7     |\n| TP4056 LiPol charger        |    1     |\n| step up converter (2A)      |    1     |\n| on/off switch               |    2     |\n| LiPol bracket               |    1     |\n| RPi GPIO Header             |    1     |\n| 20 pin female connector     |    2     |\n| button                      |    3     |\n| jack connector              |    1     |\n| 270 Ω resistor              |    2     |\n| 150 Ω resistor              |    2     |\n| 10uF electrolytic capacitor |    2     |\n| 10nF polyester capacitor    |    2     |\n\n### Assemble\n![assembled](.media/assembled.jpg)\n\nAudio output circuit (I skipped protection diodes)\n![audio_output](.media/audio_circuit.png)\n(source: https://learn.adafruit.com/adding-basic-audio-ouput-to-raspberry-pi-zero)\n\n### Software\n\n1. flash RPi with raspbian, setup `ssh` and `connectivity`\n2. add/modify following lines to `/boot/config.txt`:\n\nFor audio output\n```\ndtoverlay=audremap,pins_12_13\ndisable_audio_dither=1\n```\n\nFor camera\n```\n# Automatically load overlays for detected cameras\n#start_x=1\ndtoverlay=imx219\n```\n\n3. increase swap\n```\nsudo dphys-swapfile swapoff\n\nsudo nano /etc/dphys-swapfile\nCONF_SWAPSIZE=1024\n\nsudo dphys-swapfile setup\nsudo dphys-swapfile swapon\n```\n\n4. install required system packages\n```\nsudo apt install python3-pip espeak ffmpeg tesseract-ocr\n```\n\n5. install required python packages\n```\npip3 install torch==2.1.1 torchvision==0.16.1 --index-url https://download.pytorch.org/whl/cpu --no-cache-dir\n```\n\n```\npip3 install -r requirements.txt\n```\n\n6. following command should be executed at device startup\n```\npython3 main.py\n```\n\n### Limitations\n- objects detection is slow and lacks precision.\n- OCR works good only when text is directly in front of camera.\n- there is no case to fit device in and therefore it is not mobile.\n\n### Possible Improvements\n- replacing built in objects detector with faster and more reliable solution like `YOLOv5`.\n- integrating more advanced ocr solution (filtering, cropping).\n- adding battery monitoring system (I was going to use `DFRobot I2C Digital Wattmeter`).\n- creating 3d printed case for device mobility.\n- using newer RaspberryPi camera (v3 series).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fznitche%2Fpiva","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fznitche%2Fpiva","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fznitche%2Fpiva/lists"}