Tek sahneli sıkıştırılmış videoda anomali tespiti
Anomaly detection in single scene compressed video
Yazar: SÜMEYYE ÇAVAŞ
Danışman: PROF. DR. BEHÇET UĞUR TÖREYİN
İstanbul Teknik Üniversitesi / Bilişim Enstitüsü / Bilgisayar Bilimleri Ana Bilim Dalı / Bilgisayar Bilimleri Bilim Dalı
Derece: Yüksek Lisans, 2022
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin: Anomaliler = Anomalies ; Video sıkıştırma = Video compression

Özet:
Sürekli olarak gelişen dünyamız sağladığı birçok kolaylık ile birlikte bunların bir sonucu olarak ortaya çözülmesi gereken yeni problemler çıkarmaktadır. Bu durum, teknolojinin sürekli olarak gelişmesi ihtiyacını doğurmuştur. Bu teknolojik gelişmenin bir parçası olarak, günden güne gelişen, yeni özelliklere sahip olan, giderek daha küçük bir boyuta sığdırılan ve erişebilirliği tüm dünyayı kapsamış olan kameraları gözümüzü çevirdiğimiz her tarafta görebilmekteyiz. Bu kadar etrafımızda olan kameralardan her bir gün veri kaydının gerçekleştirildiğini düşündüğümüzde, kaydolan bu veri miktarının muazzam seviyelere ulaşabileceğini çok rahat bir şekilde söyleyebiliriz.
Ortaya çıkan bu verilerin insanlar tarafından sürekli olarak takip edilip kontrol altına alınması mümkün değildir. Bu noktada, çözüm olarak birçok sektörde insandan bağımsız akıllı sistemler geliştirilmiştir ve halen geliştirilmeye devam edilmektedir. Örnek olarak, pazarlama sektöründe bir ürüne olan talebin daha çok nasıl artırılabileceği gibi yada sağlık sektöründe bir hastalık için daha doğru karar veren sistemlerin nasıl geliştirilebileceği gibi yada savunma sektöründe daha güvenli sistemlerin nasıl oluşturulabileceği ve yolunda gitmeyen birşeyler olduğunda nasıl farkedilebileceği gibi çeşitli sorulara akıllı cevaplar sunan sistemler düşünülebilir.
Bu tezde, kameralardan toplanan veriler üzerinde akıllı bir çıkarım yapma çalışması gerçekleştirilmiştir. Bu çıkarım, kameradan alınan bir video verisinin, normal seyrinde hareket edip etmediğini veya anormal herhangi bir durum içerip içermediğini tespit etmek şeklindedir. Bu çalışma, bir videonun çerçeve bazlı düzenlilik değerini grafik üzerinde gösterme ve tüm test videolarını kapsayacak şekilde modelin performansını değerlendirme şeklinde oluşturulmuştur.
Videoda anomali tespiti üzerine şuana kadar birçok çalışma gerçekleştirilmiştir. Bu çalışmayı diğerlerin ayıran en önemli özellik, çalışmanın sıkıştırılmış video alanında ortaya çıkan hareket vektörleri kullanılarak gerçekleştirilmiş olmasıdır. Video sıkıştırma üzerine birçok standart geliştirilmiştir. Bu çalışmada, günümüzde yaygın olarak kullılan video sıkıştırma standartlarından biri olan H.265 standardına göre sıkıştırılmış olan videolar kullanılmıştır.
Çalışma boyunca veri kümesi olarak, UCSD Pedestrian veri kümesi kullanılmıştır. Bu veri kümesinde, yaya yolu üzerindeki iki ayrı kameradan elde edilen videolar çerçeveler halinde sunulmuştur. Bu çerçeveler üzerindeki hareket vektörlerini çıkarabilmek için çeşitli işlemler gerçekleştirilmiştir. İlk olarak, bu çerçeveler bir araya getirilerek videolar oluşturulmuştur. Daha sonra her bir videonun sıkıştırılması amaçlanmıştır. Bunun için International Telecommunication Union (ITU) tarafından paylaşılan açık kaynak kod kullanılmıştır. Bu kaynak kodun derlenmesi sonucunda ortaya çıkan çalıştırılabilir dosya kullanılarak videolar üzerinde sıkıştırma işlemi gerçekleştirilmiştir. Sıkıştırma işleminden sonra, H.265 standardında, diğer bir ismi ile High Efficiency Video Coding (HEVC) standardında oluşmuş, .hevc uzantılı video verileri elde edilmiştir. Sıkıştırılan .hevc uzantılı videolar yine açık kaynak kodlu, GitlHevcAnalyzer analiz aracı kullanılarak incelenmiştir. Bu analiz aracı sıkıştırılmış videoya ait çeşitli bilgileri videonun çerçeveleri üzerinde göstermektedir. Ayrıca bu çerçeveleri üzerinde yer alan bilgiler ile indirmeye olanak sağlamaktadır. Bu araç sayesinde, sıkıştırılmış video üzerindeki hareket vektörleri videonun çerçeveleri üzerinde gösterilip, hareket vektörlerinin yer aldığı çerçeveler indirilerek kullanılmak üzere dışarıdaki bir ortama aktarılabilmektedir. Ayrıca bu araç açık kaynak kodlu olduğu için geliştirilip özelleştirilebilir hale getirilebilmesi de mümkündür. Örnek olarak, araç tarafından her bir çerçevenin tek tek indirilmesi mümkündür. Bizim çalışmamızda kullandığımız veri kümesinde ise 9210 tane çerçeve yer almaktadır. Bunların hepsinin araç üzerinden tek tek indirilmesi oldukça zahmetli ve uzun süren bir iş olacaktır. Bu süreci kolaylaştırmak amacıyla, bir videonun tüm çerçevelerini üzerindeki bilgiler ile birlikte tek seferde indirip dış ortama aktaracak kod geliştirilmiştir. GitlHevcAnalyzer aracı bu şekilde özelleştirilerek veri çıkarma sürecinin kolaylaşması sağlanmıştır.
Hareket vektörlerini içeren çerçeveler model tarafından kullanılabilir hale gelmesi için çeşitli önişleme adımladından geçirilmiştir. İlk olarak sıkıştırma sonucunda hareket vektörlerinin asıl ortaya çıktığı 8 ve 8'in katı olan çerçeveler seçilmiştir. Diğer çerçeveler elenerek veri kümesine dahil edilmemiştir. Sonrasında, çerçeveler üzerindeki hareket vektörlerinin daha net bir şekilde görünmesi için, çerçevelerin yükseklik ve genişliği 480x720 olacak şekilde artırılmıştır. Daha sonra, hareket vektörleri dışındaki pikseller beyaz olacak şekilde tüm çerçeveler düzenlenmiştir. Böylece, çerçeveler üzerinde sadece hareket vektörleri bilgisinin yer alması sağlanmıştır. Son olarakta görüntüler grayscale formatına getirilmiştir. Bu işlem ile birlikte çerçeveler üzerindeki önişlemeler tamamlanarak model tarafından kullanılabilir hale getirilmiştir.
Videoda anomali tespiti gerçekleştirmek için varyasyonel otomatik kodlayıcı tabanlı model kullanılmıştır. Bu varyasyonel otomatik kodlayıcıya, hareket vektörlerini içeren çerçeveler üçerli gruplar halinde verilmiştir. Böylece modelin geçmiş çerçevelerden de öğrenebilmesi sağlanmıştır. Varyasyonel otomatik kodlayıcının ilk katmanlarını konvolüsyonel katmanlar oluşmaktadır. Bu sayede, video çerçevelerindeki uzamsal bilgilerin öğrenilmesi amaçlanmıştır. Sonraki katmanlarını ise konvolüsyonel LSTM katmanlarından oluşmaktadır. Bu sayede ise, video çerçeveleri arasındaki zamansal bilgilerin öğrenilmesi amaçlanmıştır. Böylece, videodaki anomalinin, uzam-zamansal bir öğrenme gerçekleştiren varyasyonel otomatik kodlayıcının temelinde yer alan yeniden oluşturma hatasına dayalı olarak tespit edilmesi amaçlanmıştır. İlk olarak, tamamen normal videolardan oluşan eğitim kümesi ile model eğitilmiştir. Sonrasında, gerçekleştirilen eğitim sonucunda oluşan yeniden oluşturulma hatasının dağılımından yararlanılarak eşik değer seçimi yapılmıştır. Çerçeve bazlı anomali tespiti yaparken bu eşik değer kullanılmıştır.
Model performansını değerlendirmek için iki farklı yöntem kullanılmıştır. İlk olarak, her bir test videosu için çerçeve bazlı düzenlilik skoru grafiği çıkarılmıştır. Bu grafik sayesinde videonun hangi çerçevesinden itibaren anormal bir durum gerçekleştiği, hangi çerçevelerden itibaren normale dönüldüğü gözlemlenebilmektedir. Test veri kümesinde normal ve anormal olacak şekilde çerçeve bazlı bir etiketleme mevcuttur.
Bu çalışmada da, test veri kümesinde yer alan her bir videonun çerçeveleri için seçilen eşik değere göre tahminleme yapılmıştır. Böylece, ikinci olarak da, model tarafından yapılan tahminleme ile gerçek veri etiketleri kullanılarak modelin çerçeve bazlı tahminleme performansı değerlendirilmiştir. Oluşturulan düzenlilik skoru grafikleri incelendiğinde video akışına göre genel olarak tutarlı sonuçlar gösterdiği gözlemlenmiştir. Çerçeve bazlı etiketlemenin sonuçaları incelendiğinde ise, UCSD Ped1 veri kümesinde anormal çerçevelerin %60'lık kısmının, UCSD Ped2 veri kümesinde ise anormal çerçevelerin %78'lik kısmının tespit edilebilidiği görülmüştür. Sonuç olarak, bir videonun çerçevelerindeki tüm bilgileri kullanmak yerine, sadece bu çerçevelerdeki hareket vektörleri kullanılarak yapılmış olan bu çalışmanın etkin sonuçlar çıkardığı görülmüştür.

Abstract:
Our constantly developing world, along with the many conveniences it provides, creates new problems that need to be solved as a result of these. This situation has led to the need for continuous self-development and renewal of technology. As a part of this technological development, we can see the cameras, which are developing day by day, with new features, which are compacted in a smaller size and whose accessibility covers the whole world, wherever we turn our eyes. Considering that data is recorded every day from the cameras around us, we can easily say that this amount of recorded data can reach enormous levels.
It is not possible to continuously monitor and control these emerging data by people. At this point, intelligent systems independent of humans have been developed by many sectors as a solution, and are they are still being developed. For example, systems that provide smart answers to various problems such as how to increase the demand for a product in the marketing sector, how to develop systems that make a more accurate diagnosis for disease in the health sector, or how to create safer systems in the defense sector and how to detect when something goes wrong.
In this thesis, an intelligent inference study was carried out on the data collected from the cameras. This inference is to detect whether video data received from the camera moves in its normal course or contains any abnormal conditions. This study was created by showing the frame-based regularity score of a video on the graph and evaluating the performance of the model by covering all test videos.
Many studies have been carried out so far on anomaly detection in video. The most important feature that distinguishes this study from others is that it was carried out using motion vectors that emerged in the compressed video. Many standards have been developed on video compression. In this study, videos compressed according to the H.265 standard, which is one of the most widely used video compression standards today, were used.
The UCSD Pedestrian dataset was used as the dataset throughout the study. In this dataset, the videos obtained from two separate cameras on the pedestrian road are presented in frames. Various operations have been carried out to extract the motion vectors on these frames. First, videos were created by combining these frames. It is then intended to compress each video. For this, open-source code shared by International Telecommunication Union (ITU) was used. The videos were compressed by using the executable file resulting from the compilation of this source code. After the compression process, video data with .hevc extension was obtained, which was formed in the H.265 standard, also called High Efficiency Video Coding (HEVC) standard. Compressed videos with .hevc extension were analyzed using GitlHevcAnalyzer analysis tool, which is also open source. This analysis tool shows various information of the compressed video on the frames of the video. It also allows downloading these frames with the information on them. Thanks to this tool, the motion vectors on the compressed video can be displayed on the frames of the video, and the frames containing the motion vectors can be downloaded and transferred to an external environment for use. In addition, since this tool is open source, it is possible to develop and customize it. For example, by default, we have to download each frame one by one. In the dataset we used in our study, there are 9210 frames. Downloading all of them one by one from the tool will be a very laborious and long-term job. facilitate this process, a code has been developed that will download all the frames of a video together with the information on it at once and export it to the external environment. The GitlHevcAnalyzer tool has been customized in this way, facilitating the data extraction process.
Frames containing motion vectors have undergone various preprocessing steps to make them usable by the model. Firstly, frames whose index are multiples of eight in which motion vectors appear prominently are selected. Other frames were eliminated and not included in the dataset. Afterward, the height and width of the frames were increased to 480x720 so that the motion vectors on the frames could be seen more clearly. Then, all the frames are arranged so that the pixels except the motion vectors are white. Thus, only the motion vectors information is provided on the frames. Finally, the images were converted to the grayscale format. With this process, the preprocessing on the frames has been completed and they are made usable by the model.
A variational autoencoder-based model was used to perform anomaly detection in the video. Frames containing motion vectors are given in groups of three to this variational autoencoder. Thus, it is ensured that the model can also learn from previous frameworks. The first layers of the variational autoencoder are the convolutional layers. In this way, it is aimed to learn the spatial information in video frames. The next layers consist of convolutional LSTM layers. In this way, it is aimed to learn the temporal information between video frames. Thus, it is aimed to detect the anomaly in the video based on the reconstruction error, which is obtained by the variational autoencoder performing a spatio-temporal learning. First, the model is trained with a training set consisting of completely normal videos. Afterward, threshold value selection was made by making use of the distribution of the reconstruction error resulting from the training. This threshold value was used while detecting frame-based anomalies.
Two different methods were used to evaluate model performance. First, a frame-based regularity score graph is plotted for each test video. Thanks to this graphic, it can be observed from which frame of the video an abnormal situation occurs and from which frames it returns to normal. Frame-based labeling is available in the test dataset, with normal and abnormal lebels. In this study, the frames of each video in the test dataset were predicted according to the selected threshold value. Thus, secondly, the frame-based prediction performance of the model was evaluated using the prediction made by the model and the actual data labels. When the created regularity score graphs are examined, it has been observed that it generally shows consistent results according to the video stream. When the results of frame-based labeling were examined, it was seen that 60% of abnormal frames in theUCSD Ped1 dataset and 78% of abnormal frames in the UCSD Ped2 dataset could be detected. As a result, it has been seen that this study, which was made by using only the motion vectors in these frames, instead of using all the information in the frames of a video, yielded effective results.