Detect License Plate with API
วันนี้จะมาเสนอ การตรวจจับ ป้ายทะเบียนแบบง่าย โดยใช้ service CLOUD_API ของ Openalpr โดยเขาได้เปิดให้ใช้งานได้ ฟรี 2000 ป้ายต่อ เดือนนะครับ แบบจ่ายเงินก็มีนะครับ ซึ่งจะมี Open source สำหรับใช้งาน แบบ LIB อยู่ สามารถ Train ภาพใหม่ได้ แต่วันนี้ขอเสนอการใช้แบบ Cloud-Api ก่อนนะครับ
เราสามารถนำไปประยุกต์ใช้อะไรได้บ้าง
- อาจเป็นเก็บข้อมูลป้ายรถเวลาเข้าออกบ้าน
- ไว้ตรวจสอบว่าเป็น รถแขกที่บันทึกในระบบ
- และอื่นๆ
มาเตรียมของกันเลย
- python 3
- รูปสำหรับเทส
- Lib cloud-api
วิธีลง LIB นะครับ
- ทำการดาวน์โหลด จาก https://github.com/openalpr/cloudapi
- ทำการแตกไฟล์ปกติ
- เปิด Terminal command: cd ชื่อโฟล์เดอร์/python จากนั้น python setup.py install
- เรียบร้อยครับ ถ้าไม่ใช้ สิทธิ์รูท ก็ให้เติม python setup.py install — user
สมัครสมาชิกเว็บ openalpr
เมื่อสมัครเสร็จ ให้เข้าที่ เมนูด้านซ้ายมือ ชื่อว่า Cloud Api จากนั้นจะเห็น
Cloud API Credentials:
Publishable Key pk_197bd213eaacblabalbal
Secret Key sk_46e4176af3bblabla
ให้ทำการ copy Secret Key ไว้
มาลง Code กันเลย
import openalpr_api
from openalpr_api.rest import ApiException
api_instance = openalpr_api.DefaultApi()
image = 'Filename.type'
secret_key = 'Secret_Key'
country = 'th'
recognize_vehicle = 0
return_image = 1
topn = 10
try:
api_response = api_instance.recognize_file(image, secret_key, country, recognize_vehicle=recognize_vehicle, return_image=return_image, topn=topn)
plate = api_response.results[0].plate
print(api_response.results[0])
except ApiException as e:
print("Exception when calling DefaultApi->recognize_bytes: %s\n") % e
ข้างบนจะเป็นโค๊ดตัวอย่างนะครับ สิ่งที่ต้องทำการแก้ คือ image คือใส่ path ของไฟล์ ถ้าอยู่ในระดับเดียวกัน สามารถพิมพ์ชื่อ+type ได้เลยเช่น ‘2.jpg’
ถัดมาจะเป็นส่วน secret_key แก้ใส่ของตัวเองได้จากขั้นตอนที่แล้ว
ส่วนคำอธิบายส่วนต่างๆสามารถอ่านเพิ่มเติมได้ที่
output ที่ได้จะได้
ส่วน Response สามารถเรียกชื่อได้เลย เช่น ต้องการข้อมูล plate
EX: api_response.results[0].plate
ขอบคุณครับสามารถสอบถามได้นะครับ