{"id":14276,"url":"\/distributions\/14276\/click?bit=1&hash=721b78297d313f451e61a17537482715c74771bae8c8ce438ed30c5ac3bb4196","title":"\u0418\u043d\u0432\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 \u043b\u044e\u0431\u043e\u0439 \u0442\u043e\u0432\u0430\u0440 \u0438\u043b\u0438 \u0443\u0441\u043b\u0443\u0433\u0443 \u0431\u0435\u0437 \u0431\u0438\u0440\u0436\u0438","buttonText":"","imageUuid":""}

Как применять технологии Computer Vision для поиска информации по клиентам?

Использование банковских карт становится повседневным процессом взаимодействия между людьми. Но, к сожалению, третьим лицам может стать известна информация о персональных данных клиентов. Поэтому для того, чтобы клиенты были уверены в том, что их средства и персональные данные защищены, банки применяют различные технологии на основе возможностей искусственного интеллекта. С появлением технологий компьютерного зрения (computer vision) стало реально использование детекции лиц по видео и фотоматериалам.

Поиск клиентов проводился на основе видеозаписей с камер видеонаблюдения, а затем осуществлялось сравнение полученных стоп-кадров с фотографиями пользователей из популярной на российском рынке социальной сети «В контакте». В качестве языка программирования был использован python, так как на нем написано множество библиотек для машинного обучения. Для взаимодействия с API Вконтакте была использована библиотека vk-api и специально разработанный скрипт на Python с применением библиотеки BeautifulSoup и Selenium.

status = vk.users.get(user_ids=id_user) if status==False: ## через VK_API получение url try: response = vk.photos.get(owner_id=id_user, count=5, album_id='profile') for i in range(response['items']): photo_url = str(response['items'][i]['sizes'][len(response['items'][i]['sizes'])-1]['url']) url_list.append(photo_url) except: pass elif status==True: ## идет парсинг самого сайта и получение url аватарки driver.get(r'https://vk.com/id%s'%id_user) soup = BS(driver.page_source, 'lxml') url = soup.find('img',{'class':'page_avatar_img'}) url_list.append(str(url)[str(url).find('src')+5:str(url).find(' width')-1].replace(':', '&')) else: continue

Основным алгоритмом глубокого обучения для обнаружения лиц стал MTCNN. Многозадачная сверточная нейронная сеть (MTCNN) более устойчива к изменениям света, угла и выражения лица в естественной среде. Данный алгоритм наиболее эффективен при анализе изображений, так как использует небольшую предварительную обработку по сравнению с другими алгоритмами для классификации изображений.

# определение сетки для embedding device = 'cuda' if torch.cuda.is_available() else 'cpu' print(f'Running on device "{device}"') mtcnn = MTCNN( image_size=160, margin=0, min_face_size=20, thresholds=[0.6, 0.7, 0.7], factor=0.709, post_process=True, device=device ) resnet = InceptionResnetV1(pretrained='vggface2').eval().to(device)

Применение алгоритма позволило сохранять данные в базу в виде числового вектора.

# embedding response = urllib.request.urlopen(j) x = Image.open(response) aligned = [] x_aligned = mtcnn(x) if x_aligned is not None: aligned.append(x_aligned) aligned = torch.stack(aligned).to(device) embeddings.append(resnet(aligned).detach().cpu())

Совместно с вектором в базе размещались id пользователя, информация о городе, ссылка на профиль.

Чтобы провести сравнительный анализ полученной информации с камер и созданной базой стоп-кадров с фотографиями пользователей, использовался метод подсчета расстояния L2 между векторами. Данный критерий интерпретирует результаты так: чем больше значение L2, тем больше сходство между людьми. Созданный инструмент для поиска информации по клиентам банка имеет очень важное значение для всей банковской индустрии. Последующая работа с результатами возможна уже с использованием внутренних банковских систем. Данная разработка сможет помочь решить проблемы связанные с определением личности клиентов, осуществить проверку подлинности документов и других задач, связанных с обеспечением сохранности денежных средств на счетах клиентов банка.

0
Комментарии
-3 комментариев
Раскрывать всегда