Skip to content

Отримання інформації про розпізнаний номерний знак з ANPR камер HIKVISION 7 серії через використання ISAPI

Підписка на подію

Для того, щоб отримати подію розпізнавання номеру автомобіля камерою (серії камер 7A26 та 4А26), необхідно підняти сервер, здатний обробляти запити.

Після цього необхідно відіслати відповідну команду (/ISAPI/Event/notification/httpServers/) на камеру, аби камера знала, куди відсилати подію (також є можливість зберігати зображення з номером).

Приклад:

ip камери: 192.168.30.173,

ip сервера: 192.168.30.139,

port сервера: 5008,

повний url : http://192.168.30.139:5008/http_alarm.

Команда для камери:  http://192.168.30.173/ISAPI/Event/notification/httpServers/

метод – PUT, digest auth (login, password)

ulr - http://192.168.30.173/ISAPI/Event/notification/httpServers/

========

<HttpServer version="2.0"

  xmlns="http://www.hikvision.com/ver20/XMLSchema">

  <id>1</id>

  <url>http://192.168.30.139:5008/http_alarm</url>

  <enabled>true</enabled>

  <protocolType>HTTP</protocolType>

  <parameterFormatType>XML</parameterFormatType>

  <addressingFormatType>ipaddress</addressingFormatType>

  <ipAddress>192.168.30.139</ipAddress>

  <portNo>5008</portNo>

  <userName></userName>

  <httpAuthenticationMethod>none</httpAuthenticationMethod>

  <eventType>all</eventType>

  <uploadPicture>false</uploadPicture>

  <pictureType>big</pictureType>

</HttpServer>

Для отримання налаштувань камери можна використати ту саму команду, але змінити метод на GET (щоб видалити - DELETE) .

GET http://192.168.30.173/ISAPI/Event/notification/httpServers/

DELETE http://192.168.30.173/ISAPI/Event/notification/httpServers/<:id>

Отримання інформації про номер та фото

Після цього, на вказаний url (http://192.168.30.139:5008/http_alarm) будуть приходити події формату: [('channelID', '1'), ('dateTime', '20191228T121448 0200'), ('eventType', 'vehicleDetection'), ('country', 'Ukraine'), ('licensePlate', 'AA7367EA'), ('lane', '1'), ('direction', 'forward'), ('confidenceLevel', '100')].

dateTime = request.args.get('dateTime')

plate_number = request.args.get('licensePlate')

А також зображення (request.data).

with open('{}\\{}.jpg'.format(path, id), 'wb') as handler:

handler.write(request.data)

Picture1.png

Відправити POST команду на камеру з відповідним пейлоадом.

Команда: http://192.168.30.176/ISAPI/ContentMgmt/search

Digest Auth: login, password

Пейлоад:

<CMSearchDescription>

                <searchID>1</searchID>

                <trackIDList>

                               <trackID>103</trackID>

                </trackIDList>

                <timeSpanList>

                               <timeSpan>

                                               <startTime>2022-10-24T21:00:00Z</startTime>

                                               <endTime>2022-10-25T20:59:59Z</endTime>

                               </timeSpan>

                </timeSpanList>

                <maxResults>50</maxResults>

</CMSearchDescription>

Приклад відповіді:

<?xml version="1.0" encoding="UTF-8"?>

<CMSearchResult version="2.0"

                xmlns="http://www.hikvision.com/ver20/XMLSchema">

                <searchID>{1}</searchID>

                <responseStatus>true</responseStatus>

                <responseStatusStrg>MORE</responseStatusStrg>

                <numOfMatches>1</numOfMatches>

                <matchList>

                               <searchMatchItem>

                                               <sourceID>{0000000000-0000-0000-0000-000000000000}</sourceID>

                                               <trackID>103</trackID>

                                               <timeSpan>

                                                               <startTime>2022-10-25T11:26:30Z</startTime>

                                                               <endTime>2022-10-25T11:26:30Z</endTime>

                                               </timeSpan>

                                               <mediaSegmentDescriptor>

                                                               <contentType>picture</contentType>

                                                               <codecType>jpeg</codecType>

                                                               <playbackURI>http://192.168.30.176/ISAPI/Streaming/tracks/103/?starttime=20221025T112630Z&amp;endtime=20221025T112630Z&amp;name=ch01_00000000000000034@20221025132630_AB9999AC&amp;size=195434</playbackURI>

                                               </mediaSegmentDescriptor>

                                               <metadataMatches>

                                                               <metadataDescriptor>recordType.meta.hikvision.com/vehicleDetection</metadataDescriptor>

                                               </metadataMatches>

                               </searchMatchItem>

                </matchList>

</CMSearchResult>

Де, спарсивши, значення playbackURI ви можете завантажити зображення GET запитом (http://192.168.30.176/ISAPI/Streaming/tracks/103/?starttime=20221025T112630Z&amp;endtime=20221025T112630Z&amp;name=ch01_00000000000000034@20221025132630_AB9999AC) і отримати номер автомобіля (AB9999AC).

Picture2.png

Керування тривожним виходом

Відправити PUT команду на камеру з відповідним пейлоадом (щоб увімкнути тригер):

url='http://{}:{}/ISAPI/System/IO/outputs/1/trigger'.format('192.168.30.173', 80)

payloadToOn = """

        <IOPortData>

            <outputState>high</outputState>

        </IOPortData>

"""

r = requests.put(url, auth=HTTPDigestAuth('login', 'password'), data=payloadToOn, timeout=5)

Потім, щоб вимкнути тригер:

payloadToOff = """

        <IOPortData>

            <outputState>low</outputState>

        </IOPortData>

        """

r = requests.put(url, auth=HTTPDigestAuth('login', 'password'), data=payloadToOff, timeout=5)

Завантажуйте прикріплений файл з повною інструкцією.

Was this article helpful?

👍 0 | 👎 0

Увійдіть і підтвердьте email, щоб голосувати.

Comments

Коментар не можна редагувати після публікації. Ви можете подати запит на видалення.

Only signed-in users with verified email can post/reply/report.

No comments yet.