Upang biswal na tukuyin at i-highlight ang mga nakitang bagay sa isang larawan gamit ang Pillow library, maaari naming sundin ang isang hakbang-hakbang na proseso. Ang Pillow library ay isang malakas na Python imaging library na nagbibigay ng malawak na hanay ng mga kakayahan sa pagpoproseso ng imahe. Sa pamamagitan ng pagsasama-sama ng mga kakayahan ng Pillow library sa object detection functionality ng Google Vision API, makakamit namin ang gawaing ito nang mahusay.
Narito ang mga hakbang upang biswal na makilala at i-highlight ang mga nakitang bagay sa isang larawan gamit ang Pillow library:
1. I-install ang mga kinakailangang aklatan: Magsimula sa pamamagitan ng pag-install ng mga kinakailangang aklatan. I-install ang Pillow gamit ang command na `pip install pillow`. Bukod pa rito, kakailanganin mong i-set up ang Google Vision API at i-install ang Google Cloud client library para sa Python.
2. Magpatotoo gamit ang Google Vision API: Upang magamit ang Google Vision API, kailangan mong patotohanan ang iyong application. Sundin ang dokumentasyong ibinigay ng Google para makuha ang mga kinakailangang kredensyal.
3. I-load at suriin ang larawan: Gamitin ang Pillow library para i-load ang larawang gusto mong suriin. Maaari mong gamitin ang paraan ng `Image.open()` upang buksan ang image file. Kapag na-load na ang larawan, i-convert ito sa isang format na tugma sa Google Vision API, gaya ng JPEG o PNG.
4. Ipadala ang larawan sa Google Vision API: Gamitin ang Google Cloud client library para sa Python upang ipadala ang larawan sa Google Vision API para sa object detection. Magagawa ito sa pamamagitan ng paggawa ng object ng kahilingan na may data ng imahe at pagtawag sa naaangkop na paraan, gaya ng `image_annotator_client.object_localization().annotate_image()`.
5. Kunin ang mga resulta ng pagtuklas ng bagay: I-extract ang mga resulta ng pagtuklas ng bagay mula sa tugon na natanggap mula sa Google Vision API. Ang tugon ay maglalaman ng impormasyon tungkol sa mga nakitang bagay, tulad ng kanilang mga bounding box, mga label, at mga marka ng kumpiyansa.
6. Gumuhit ng mga bounding box sa larawan: Gamitin ang Pillow library upang gumuhit ng mga bounding box sa paligid ng mga nakitang bagay sa larawan. Maaari mong gamitin ang paraang `ImageDraw.Draw()` para gumawa ng drawing object, at pagkatapos ay gamitin ang `draw.rectangle()` na paraan upang iguhit ang mga bounding box.
7. Magdagdag ng mga label at mga marka sa larawan: Upang mapahusay ang visualization, maaari kang magdagdag ng mga label at mga marka ng kumpiyansa sa larawan. Gamitin ang paraan ng `draw.text()` mula sa library ng Pillow upang i-overlay ang mga label at mga marka sa larawan.
8. I-save at ipakita ang annotated na imahe: I-save ang annotated na imahe gamit ang `Image.save()` na paraan mula sa Pillow library. Maaari mong piliin ang nais na format, tulad ng JPEG o PNG. Opsyonal, ipakita ang annotated na larawan gamit ang `Image.show()` na paraan.
Sa pamamagitan ng pagsunod sa mga hakbang na ito, maaari mong makita at mai-highlight ang mga nakitang bagay sa isang larawan gamit ang Pillow library. Ang kumbinasyon ng makapangyarihang mga kakayahan sa pagpoproseso ng imahe ng Pillow at ang functionality ng pagtuklas ng bagay ng Google Vision API ay nagbibigay-daan para sa mahusay at tumpak na pagsusuri ng mga larawan.
Halimbawa:
python from PIL import Image, ImageDraw from google.cloud import vision # Load and analyze the image image_path = 'path/to/your/image.jpg' image = Image.open(image_path) image_data = image.tobytes() # Authenticate with the Google Vision API client = vision.ImageAnnotatorClient.from_service_account_json('path/to/your/credentials.json') # Send the image to the Google Vision API for object detection response = client.object_localization(image=vision.Image(content=image_data)) objects = response.localized_object_annotations # Draw bounding boxes on the image draw = ImageDraw.Draw(image) for obj in objects: bbox = obj.bounding_poly.normalized_vertices draw.rectangle([(bbox[0].x * image.width, bbox[0].y * image.height), (bbox[2].x * image.width, bbox[2].y * image.height)], outline='red', width=3) # Add labels and scores to the image label = obj.name score = obj.score draw.text((bbox[0].x * image.width, bbox[0].y * image.height - 15), f'{label} ({score:.2f})', fill='red') # Save and display the annotated image annotated_image_path = 'path/to/save/annotated_image.jpg' image.save(annotated_image_path) image.show()
Sa halimbawang ito, ini-load at sinusuri muna namin ang larawan gamit ang Pillow library. Pagkatapos, nagpapatotoo kami sa Google Vision API at ipinapadala ang larawan para sa pagtuklas ng bagay. Kinukuha namin ang mga resulta ng pagtuklas ng bagay at ginagamit ang library ng Pillow upang gumuhit ng mga bounding box sa paligid ng mga nakitang bagay sa larawan. Bukod pa rito, nagdaragdag kami ng mga label at mga marka ng kumpiyansa sa larawan. Sa wakas, sine-save at ipinapakita namin ang na-annotate na larawan.
Iba pang kamakailang mga tanong at sagot tungkol sa Pag-unawa sa mga advanced na imahe:
- Ano ang ilang mga paunang natukoy na kategorya para sa pagkilala ng bagay sa Google Vision API?
- Ano ang inirerekumendang diskarte para sa paggamit ng ligtas na tampok sa pagtuklas ng paghahanap kasama ng iba pang mga diskarte sa pag-moderate?
- Paano natin maa-access at maipapakita ang mga halaga ng posibilidad para sa bawat kategorya sa ligtas na anotasyon sa paghahanap?
- Paano natin makukuha ang ligtas na anotasyon sa paghahanap gamit ang Google Vision API sa Python?
- Ano ang limang kategorya na kasama sa tampok na pagtukoy ng ligtas na paghahanap?
- Paano nakikita ng ligtas na tampok sa paghahanap ng Google Vision API ang tahasang nilalaman sa loob ng mga larawan?
- Paano natin maaayos ang nakuhang impormasyon ng bagay sa isang tabular na format gamit ang pandas data frame?
- Paano natin makukuha ang lahat ng anotasyon ng object mula sa tugon ng API?
- Anong mga library at programming language ang ginagamit upang ipakita ang functionality ng Google Vision API?
- Paano gumaganap ang Google Vision API ng object detection at localization sa mga larawan?
Tingnan ang higit pang mga tanong at sagot sa Advanced na pag-unawa sa mga larawan