Doctor AI

Dr. Savath Saypadith

240 ບົດຄວາມ

ການນັບຈຳນວນຄົນໃນງານບຸນທາດຫຼວງດ້ວຍ AI

ໂພສເມື່ອ # Computer Vision # Artificial Intelligence # Python # PyTorch

ການນັບຈຳນວນຄົນໃນງານບຸນທາດຫຼວງດ້ວຍ AI: ວິເຄາະຝູງຊົນດ້ວຍ Computer Vision

ງານບຸນທາດຫຼວງ ແມ່ນໜຶ່ງໃນເທດສະການທີ່ຍິ່ງໃຫຍ່ ແລະ ສຳຄັນທີ່ສຸດຂອງປະເທດລາວ. ໃນແຕ່ລະປີ, ມີມວນຊົນຫຼາຍແສນຄົນຫຼັ່ງໄຫຼເຂົ້າມາຮ່ວມງານເພື່ອໄຫວ້ພຣະທາດ, ຊົມການຄົບງັນ, ແລະ ຊື້ເຄື່ອງໃນງານວາງສະແດງສິນຄ້າ. ການຄຸ້ມຄອງຝູງຊົນຈຳນວນມະຫາສານນີ້ ເປັນສິ່ງທ້າທາຍອັນໃຫຍ່ຫຼວງສຳລັບເຈົ້າໜ້າທີ່ຮັກສາຄວາມປອດໄພທັງໃນເລື່ອງການຄຸ້ມຄອງຈະລາຈອນ, ການຈັດການທາງເຂົ້າ-ອອກ, ແລະ ການປ້ອງກັນເຫດການລົ້ມຢຽບກັນ (Stampede).

ໃນບົດຄວາມນີ້, ເຮົາຈະມາເຈາະເລິກວິທີການນຳໃຊ້ເຕັກໂນໂລຊີ Computer Vision (CV) ໂດຍສະເພາະການໃຊ້ໂມເດລ Density Estimation ເຂົ້າມາຊ່ວຍນັບຈຳນວນຄົນ ແລະ ແກ້ໄຂບັນຫາການຈັດການຝູງຊົນໃນງານບຸນທາດຫຼວງຢ່າງມີປະສິດທິພາບ.

ເປັນຫຍັງໂມເດລ Object Detection ທົ່ວໄປຈຶ່ງບໍ່ຕອບໂຈດ?

ສຳລັບນັກພັດທະນາ AI ລະດັບກາງ, ທ່ານອາດຈະຄຸ້ນເຄີຍກັບເຕັກນິກ Object Detection ເຊັ່ນ YOLO ຫຼື Faster R-CNN ໃນການກວດຈັບຄົນໃນຮູບພາບ. ແຕ່ເມື່ອນຳໃຊ້ກັບຝູງຊົນໃນງານບຸນທາດຫຼວງທີ່ມີຄົນຍ່າງເບືຽດສຽດກັນ, ໂມເດລເຫຼົ່ານີ້ມັກຈະພົບບັນຫາ ການບັງກັນ (Occlusion). ເມື່ອຄົນຢືນຊ້ອນກັນຫຼາຍໆ, ໂມເດລຈະບໍ່ສາມາດຕີກອບ Bounding box ໄດ້ຄົບທຸກຄົນ ເຮັດໃຫ້ການນັບຈຳນວນຜິດພາດຢ່າງໜັກ.

ເພື່ອແກ້ໄຂບັນຫານີ້, ວົງການ Computer Vision ຈຶ່ງຫັນມາໃຊ້ເຕັກນິກ Density Estimation (ການປະເມີນຄວາມໜາແໜ້ນ) ແທນ.

ການເຮັດວຽກຂອງ Density Estimation Model

ແທນທີ່ຈະກວດຈັບບຸກຄົນແຕ່ລະຄົນ (Individual detection), Density Estimation Model ຈະຮຽນຮູ້ທີ່ຈະແປງຮູບພາບຝູງຊົນໃຫ້ກາຍເປັນ ແຜນທີ່ຄວາມໜາແໜ້ນ (Density Map).

ສະຖາປັດຕະຍະກຳທີ່ນິຍົມໃຊ້ໃນທຸກມື້ນີ້ແມ່ນໂຄງສ້າງແບບ CNN (Convolutional Neural Networks) ທີ່ໃຊ້ Dilated Convolutions ເພື່ອຂະຫຍາຍ Receptive field ໂດຍບໍ່ເຮັດໃຫ້ຄວາມລະອຽດຂອງຮູບພາບຫຼຸດລົງ ເຊັ່ນ ໂມເດລ CSRNet (Congested Scene Recognition Network).

ການຂຽນໂຄ້ດ: ສ້າງລະບົບນັບຈຳນວນຄົນດ້ວຍ PyTorch

ລອງມາເບິ່ງວິທີການເບື້ອງຕົ້ນໃນການນຳໃຊ້ PyTorch ເພື່ອປະມວນຜົນຮູບພາບຈາກກ້ອງ CCTV ທີ່ຕິດຕັ້ງຢູ່ໜ້າປະຕູທາງເຂົ້າຂອງສະໜາມຫຼວງ. ເຮົາຈະສົມມຸດວ່າມີການໂຫຼດໂມເດລ (Pre-trained CSRNet) ທີ່ຖືກຝຶກສອນກັບ Dataset ຝູງຊົນ (ເຊັ່ນ ShanghaiTech Dataset) ມາແລ້ວ.

import cv2
import torch
import numpy as np
from torchvision import transforms
# ສົມມຸດວ່າເຮົາມີໂຄງສ້າງໂມເດລ CSRNet ກຽມໄວ້ໃນໄຟລ໌ models.py
from models import CSRNet 

def load_crowd_model(weights_path):
    """ໂຫຼດໂມເດລທີ່ຝຶກມາແລ້ວ"""
    model = CSRNet()
    model.load_state_dict(torch.load(weights_path, map_location=torch.device('cpu')))
    model.eval() # ຕັ້ງຄ່າໂມເດລເປັນ Evaluation mode
    return model

def predict_crowd_count(image_path, model):
    """ອ່ານຮູບພາບ ແລະ ທຳນາຍຈຳນວນຄົນ"""
    # 1. ອ່ານຮູບພາບຈາກກ້ອງ CCTV ໜ້າວັດທາດຫຼວງ
    img = cv2.imread(image_path)
    img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    
    # 2. ຈັດກຽມຮູບພາບ (Image Preprocessing)
    transform = transforms.Compose([
        transforms.ToTensor(),
        transforms.Normalize(mean=[0.485, 0.456, 0.406],
                             std=[0.229, 0.224, 0.225])
    ])
    img_tensor = transform(img).unsqueeze(0) # ເພີ່ມ Batch dimension
    
    # 3. ປະມວນຜົນຜ່ານ CNN Model ເພື່ອໃຫ້ໄດ້ Density Map
    with torch.no_grad():
        density_map = model(img_tensor)
        
    # 4. ຄຳນວນຈຳນວນຄົນໂດຍການບວກຄ່າທັງໝົດໃນແຜນທີ່
    estimated_count = torch.sum(density_map).item()
    
    return estimated_count, density_map.squeeze().numpy()

# ລອງລັນລະບົບ
if __name__ == "__main__":
    model = load_crowd_model('weights/csrnet_best.pth')
    image_file = 'data/thatluang_gate_cctv.jpg'
    
    count, output_map = predict_crowd_count(image_file, model)
    print(f"ຈຳນວນຄົນທີ່ຄາດຄະເນໄດ້ໃນບໍລິເວນທາງເຂົ້າທາດຫຼວງ ຄື: {int(count)} ຄົນ")

ການສະແດງຜົນໃນຮູບແບບ Heatmap

ເພື່ອໃຫ້ເຈົ້າໜ້າທີ່ສາມາດເບິ່ງເຫັນພາບລວມໄດ້ງ່າຍ, ເຮົາສາມາດນຳເອົາຜົນຮັບ output_map ຈາກໂຄ້ດດ້ານເທິງໄປສ້າງເປັນ Heatmap ດ້ວຍ OpenCV. ສີແດງຄືຈຸດທີ່ມີຄົນໜາແໜ້ນທີ່ສຸດ (ເຊັ່ນ ບໍລິເວນຮ້ານຂາຍປີ້ ຫຼື ຈຸດເຂົ້າປະຕູວັດ). ຂໍ້ມູນທີ່ເຫັນເປັນພາບ (Visual Analytics) ນີ້ ຈະຊ່ວຍໃນການຕັດສິນໃຈໄດ້ເປັນຢ່າງດີ.

ການນຳໃຊ້ຕົວຈິງສຳລັບງານບຸນທາດຫຼວງ (Real-World Application)

ການທີ່ເຮົາມີໂມເດລ AI ທີ່ແກ້ໄຂບັນຫາ (Inference) ໄດ້ໄວ ຊ່ວຍໃຫ້ສາມາດພັດທະນາເປັນລະບົບອັດສະລິຍະດັ່ງນີ້:

  1. ລະບົບເຕືອນໄພອັດຕະໂນມັດ (Real-time Alerts): ເມື່ອ AI ປະມວນຜົນ CCTV ໃນເຂດເດີ່ນທາດຫຼວງ ແລ້ວພົບວ່າຈຳນວນຄົນຕໍ່ຕາແມັດ (Density level) ເກີນກຳນົດ, ລະບົບສາມາດແຈ້ງເຕືອນຜ່ານແອັບພລິເຄຊັນ ຫຼື ວິທະຍຸສື່ສານ ໃຫ້ເຈົ້າໜ້າທີ່ປິດປະຕູ ຫຼື ລະບາຍຄົນອອກໄປທາງອື່ນ.
  2. ການວິເຄາະຂໍ້ມູນແຫຼ່ງທ່ອງທ່ຽວ (Analytics Dashboard): ຜູ້ຈັດງານສາມາດຮູ້ໄດ້ວ່າ ຊ່ວງເວລາໃດ (ປົກກະຕິແມ່ນຕອນແລງຂອງມື້ວັນເພັງ) ທີ່ມີຄົນເຂົ້າຮ່ວມງານຫຼາຍທີ່ສຸດ ເພື່ອວາງແຜນການຈັດສັນກຳລັງຕຳຫຼວດ ແລະ ລົດໂຮງໝໍໃນປີຖັດໄປ.
  3. ການຈັດການຈະລາຈອນຄົນຍ່າງ: ຊ່ວຍວິເຄາະທິດທາງການໄຫຼວຽນ (Flow analysis) ລວມເຖິງການຈັດສັນຮ້ານຄ້າບໍ່ໃຫ້ກີດຂວາງເສັ້ນທາງຍ່າງຫຼັກ ເພື່ອຫຼຸດຜ່ອນຄວາມແອອັດ.

Key Takeaways

ສະຫຼຸບ

ການນຳໃຊ້ເຕັກໂນໂລຊີ AI ໃນຮູບແບບຂອງ Computer Vision ມາຊ່ວຍນັບຈຳນວນຄົນໃນງານທີ່ຍິ່ງໃຫຍ່ເຊັ່ນ ງານບຸນທາດຫຼວງ ບໍ່ພຽງແຕ່ເປັນການຍົກລະດັບການຈັດການງານເທດສະການໃຫ້ທັນສະໄໝເທົ່ານັ້ນ, ແຕ່ຍັງເປັນການຮັບປະກັນຄວາມສະຫວັດດິພາບ ແລະ ຄວາມປອດໄພຂອງມວນຊົນທີ່ເຂົ້າຮ່ວມ. ການຮຽນຮູ້ ແລະ ພັດທະນາລະບົບ Density Estimation ມື້ນີ້ ຈະເປັນກ້າວສຳຄັນທີ່ນັກພັດທະນາຊາວລາວສາມາດນຳໄປຕໍ່ຍອດໃນຫຼາຍໆສະຖານະການໄດ້ໃນອະນາຄົດ.