AI larangan merokok tidak mengapa! Pengecaman merokok + pengecaman muka
Helo, semua.
Hari ini saya akan berkongsi dengan anda projek pengecaman merokok + pengecaman muka. Banyak tempat awam, tapak pengeluaran dan sekolah mempunyai larangan merokok. Ia masih perlu untuk melaksanakan larangan merokok dan membiarkan AI secara automatik mengenal pasti tingkah laku merokok dan mengenal pasti siapa yang merokok.
Gunakan algoritma pengesanan sasaran untuk menentukan tingkah laku merokok, mengekstrak muka perokok dan menggunakan algoritma pengecaman muka untuk menentukan siapa yang merokok. Idea ini agak mudah, tetapi butirannya masih sedikit menyusahkan.
Data latihan dan kod sumber yang digunakan dalam projek telah dibungkus. Masih sama seperti dulu, dapatkan di ruangan komen.
1. Kesan rokok
Saya menggunakan 5k data berlabel merokok sebagai data latihan
dan meletakkannya dalam direktori set data.
Latih model pengesanan sasaran YOLOv5.
Langkah pertama, salin data/coco128.yaml ke smoke.yaml, dan ubah suai direktori set data dan maklumat konfigurasi kategori
path: ../dataset/smoke # dataset root dir train: images/train# train images (relative to 'path') 128 images val: images/test# val images (relative to 'path') 128 images test:# test images (optional) # Classes names: 0: smoke
Langkah kedua, salin ./models/yolov5s ialah smoke.yaml, ubah suai nc
nc: 1# number of classes
Langkah ketiga ialah memuat turun model pra-latihan yolov5s.pt dan letakkannya dalam direktori {yolov5}/weights
Laksanakan arahan berikut , latihan sudah cukup
python ./train.py --data ./data/smoke.yaml --cfg ./models/smoke.yaml --weights ./weights/yolov5s.pt --batch-size 30 --epochs 120 --workers 8 --name smoke --project smoke_s
Selepas latihan selesai, anda boleh melihat output berikut:
Telefon pun boleh.
Selepas latihan selesai, kedudukan terbaik.pt boleh didapati dan digunakan kemudian untuk pengesanan rokok.
model = torch.hub.load('../28_people_counting/yolov5', 'custom', './weights/ciga.pt', source='local') results = self.model(img[:, :, ::-1]) pd = results.pandas().xyxy[0] ciga_pd = pd[pd['class'] == 0]
Selepas dapat mengenal pasti rokok, kita masih perlu menentukan sama ada kita sedang merokok.
Anda boleh menggunakan bingkai pengesan rokok dan bingkai pengesanan mulut untuk mengira IOU untuk menilai secara terus terang, ia adalah untuk menentukan sama ada kedua-dua bingkai itu bersilang merokok.
Bingkai pengesan mulut, menggunakan mata kunci muka untuk mengenal pasti.
2. Pengecaman muka
Terdapat banyak model matang untuk algoritma pengecaman muka Kami tidak perlu melatihnya sendiri, kami hanya boleh memindahkan pangkalan data secara langsung.
Saya menggunakan perpustakaan dlib di sini, yang boleh mengenal pasti 68 perkara utama pada wajah dan mengekstrak ciri muka berdasarkan 68 perkara utama ini.
face_detector = dlib.get_frontal_face_detector() face_sp = dlib.shape_predictor('./weights/shape_predictor_68_face_landmarks.dat') dets = face_detector(img, 1) face_list = [] for face in dets: l, t, r, b = face.left(), face.top(), face.right(), face.bottom() face_shape = face_sp(img, face)
pengesan_muka boleh mengesan muka dan mengembalikan bingkai pengesanan muka face_sp berdasarkan bingkai pengesanan muka dan mengenal pasti 68 titik utama muka.
Daripada 68 perkara utama ini, kami boleh mendapatkan bingkai pengesan mulut untuk menentukan sama ada anda merokok.
Akhir sekali, kami masih berharap untuk menggunakan algoritma pengecaman muka untuk mengenal pasti siapa yang merokok.
Langkah pertama ialah mengekstrak ciri muka
face_feature_model = dlib.face_recognition_model_v1('./weights/dlib_face_recognition_resnet_model_v1.dat') face_descriptor = face_feature_model.compute_face_descriptor(img, face_shape)
face_descriptorKira vektor ciri untuk setiap muka berdasarkan kedudukan dan jarak antara 68 titik utama muka. Prinsip ini serupa dengan word2vec yang kami kongsi sebelum ini atau memetakan video ke vektor N-dimensi.
Langkah kedua ialah memasukkan muka sedia ada ke dalam pangkalan data wajah. Saya menyediakan 3 tingkah laku merokok dalam filem dan siri TV
Potong wajah daripada video, vektorkannya dan tuliskannya ke dalam pangkalan data wajah (digantikan dengan fail)
Langkah ketiga, selepas merokok berlaku, kita boleh memotong muka perokok, mengira vektor muka, membandingkannya dengan ciri pangkalan data muka, dan mencari wajah Serupa yang terbaik, kembalikan nama yang sepadan
def find_face_name(self, face_feat): """ 人脸识别,计算吸烟者名称 :param face_feat: :return: """ cur_face_feature = np.asarray(face_feat, dtype=np.float64).reshape((1, -1)) # 计算两个向量(两张脸)余弦相似度 distances = np.linalg.norm((cur_face_feature - self.face_feats), axis=1) min_dist_index = np.argmin(distances) min_dist = distances[min_dist_index] if min_dist < 0.3: return self.face_name_list[min_dist_index] else: return '未知'
Terdapat banyak kawasan untuk pengembangan projek ini, contohnya: video yang saya sediakan hanya mempunyai satu muka, dan pemantauan sebenar mesti ada berbilang muka di dalamnya. Pada masa ini, anda boleh menggunakan algoritma MOT untuk menjejaki pejalan kaki, dan kemudian mengenal pasti setiap orang secara individu untuk merokok
Selain itu, anda boleh mencipta kawasan statistik yang berasingan untuk menyimpan tingkah laku merokok yang dikenal pasti dan menggunakannya sebagai bukti untuk amaran dan penalti.
Atas ialah kandungan terperinci AI larangan merokok tidak mengapa! Pengecaman merokok + pengecaman muka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Panduan Lengkap untuk Memeriksa Konfigurasi HDFS Dalam Sistem CentOS Artikel ini akan membimbing anda bagaimana untuk memeriksa konfigurasi dan menjalankan status HDFS secara berkesan pada sistem CentOS. Langkah -langkah berikut akan membantu anda memahami sepenuhnya persediaan dan operasi HDFS. Sahkan Pembolehubah Alam Sekitar Hadoop: Pertama, pastikan pembolehubah persekitaran Hadoop ditetapkan dengan betul. Di terminal, laksanakan arahan berikut untuk mengesahkan bahawa Hadoop dipasang dan dikonfigurasi dengan betul: Hadoopversion Semak fail konfigurasi HDFS: Fail konfigurasi teras HDFS terletak di/etc/hadoop/conf/direktori, di mana core-site.xml dan hdfs-site.xml adalah kritikal. gunakan

Perintah shutdown CentOS adalah penutupan, dan sintaks adalah tutup [pilihan] [maklumat]. Pilihan termasuk: -h menghentikan sistem dengan segera; -P mematikan kuasa selepas penutupan; -r mulakan semula; -T Waktu Menunggu. Masa boleh ditentukan sebagai segera (sekarang), minit (minit), atau masa tertentu (HH: mm). Maklumat tambahan boleh dipaparkan dalam mesej sistem.

Dasar sandaran dan pemulihan Gitlab di bawah sistem CentOS untuk memastikan keselamatan data dan pemulihan, Gitlab pada CentOS menyediakan pelbagai kaedah sandaran. Artikel ini akan memperkenalkan beberapa kaedah sandaran biasa, parameter konfigurasi dan proses pemulihan secara terperinci untuk membantu anda menubuhkan strategi sandaran dan pemulihan GitLab lengkap. 1. Backup Manual Gunakan Gitlab-Rakegitlab: Backup: Buat Perintah untuk Melaksanakan Backup Manual. Perintah ini menyokong maklumat utama seperti repositori Gitlab, pangkalan data, pengguna, kumpulan pengguna, kunci, dan kebenaran. Fail sandaran lalai disimpan dalam direktori/var/opt/gitlab/sandaran. Anda boleh mengubah suai /etc /gitlab

Memasang MySQL pada CentOS melibatkan langkah -langkah berikut: Menambah sumber MySQL YUM yang sesuai. Jalankan YUM Pasang Perintah MySQL-Server untuk memasang pelayan MySQL. Gunakan perintah mysql_secure_installation untuk membuat tetapan keselamatan, seperti menetapkan kata laluan pengguna root. Sesuaikan fail konfigurasi MySQL seperti yang diperlukan. Tune parameter MySQL dan mengoptimumkan pangkalan data untuk prestasi.

Panduan Lengkap untuk Melihat Log Gitlab Di bawah Sistem CentOS Artikel ini akan membimbing anda bagaimana untuk melihat pelbagai log Gitlab dalam sistem CentOS, termasuk log utama, log pengecualian, dan log lain yang berkaitan. Sila ambil perhatian bahawa laluan fail log mungkin berbeza -beza bergantung pada versi GitLab dan kaedah pemasangan. Jika laluan berikut tidak wujud, sila semak fail Direktori Pemasangan dan Konfigurasi GitLab. 1. Lihat log Gitlab utama Gunakan arahan berikut untuk melihat fail log utama aplikasi GitLabRails: Perintah: Sudocat/var/Log/Gitlab/Gitlab-Rails/Production.log Perintah ini akan memaparkan produk

Latihan yang diedarkan Pytorch pada sistem CentOS memerlukan langkah -langkah berikut: Pemasangan Pytorch: Premisnya ialah Python dan PIP dipasang dalam sistem CentOS. Bergantung pada versi CUDA anda, dapatkan arahan pemasangan yang sesuai dari laman web rasmi Pytorch. Untuk latihan CPU sahaja, anda boleh menggunakan arahan berikut: PipinstallToRchTorchVisionTorchaudio Jika anda memerlukan sokongan GPU, pastikan versi CUDA dan CUDNN yang sama dipasang dan gunakan versi pytorch yang sepadan untuk pemasangan. Konfigurasi Alam Sekitar Teragih: Latihan yang diedarkan biasanya memerlukan pelbagai mesin atau mesin berbilang mesin tunggal. Tempat

Membolehkan pecutan GPU pytorch pada sistem CentOS memerlukan pemasangan cuda, cudnn dan GPU versi pytorch. Langkah-langkah berikut akan membimbing anda melalui proses: Pemasangan CUDA dan CUDNN Tentukan keserasian versi CUDA: Gunakan perintah NVIDIA-SMI untuk melihat versi CUDA yang disokong oleh kad grafik NVIDIA anda. Sebagai contoh, kad grafik MX450 anda boleh menyokong CUDA11.1 atau lebih tinggi. Muat turun dan pasang Cudatoolkit: Lawati laman web rasmi Nvidiacudatoolkit dan muat turun dan pasang versi yang sepadan mengikut versi CUDA tertinggi yang disokong oleh kad grafik anda. Pasang Perpustakaan Cudnn:

Docker menggunakan ciri -ciri kernel Linux untuk menyediakan persekitaran berjalan yang cekap dan terpencil. Prinsip kerjanya adalah seperti berikut: 1. Cermin digunakan sebagai templat baca sahaja, yang mengandungi semua yang anda perlukan untuk menjalankan aplikasi; 2. Sistem Fail Kesatuan (Unionfs) menyusun pelbagai sistem fail, hanya menyimpan perbezaan, menjimatkan ruang dan mempercepatkan; 3. Daemon menguruskan cermin dan bekas, dan pelanggan menggunakannya untuk interaksi; 4. Ruang nama dan cgroups melaksanakan pengasingan kontena dan batasan sumber; 5. Pelbagai mod rangkaian menyokong interkoneksi kontena. Hanya dengan memahami konsep -konsep teras ini, anda boleh menggunakan Docker dengan lebih baik.
