Chris Pollett > Students >
Chang

    ( Print View)

    [Bio]

    [Blog]

    [CS297 Proposal]

    [Deliverable 1]

    [Deliverable 2]

    [Deliverable 3]

    [Deliverable 4]

    [CS 297 Report - PDF]

Project Blog


Week 16 - December 7th 2021

Discussed the next steps to look forward to. I have to start thinking about who I want on my committee.

Things to do for this week:

  • Fix the corrections Dr.Pollett commented on in the report
  • Fix HTML of pages I created.

Week 15 - November 30th 2021

Pre-Meeting Notes

Was able to complete report up to Dev 3. The other text below that is filler that will be deleted.

Things to do for this week:

  • Finish first draft of CS297 report

Week 14 - November 23rd 2021

Pre-Meeting Notes

Followed these notebooks

  • CelebA: https://github.com/Yangyangii/GAN-Tutorial
  • cifar10: https://github.com/diegoalejogm/gans/blob/master/2.%20DC-GAN%20TensorFlow.ipynb
  • minst: https://www.tensorflow.org/tutorials/generative/dcgan

Discussed how a GAN would work to suit my needs to solving this source camera identification model and how to spoof images. Discussed the project report specs.

Things to do for this week:

  • Work on Report
  • Work more on GAN for Dev 5
  • Read and report Ref 5

Week 13 - November 16th 2021

Discussed the research paper that was REF 3. Even though the topic wasn't ideal timing, it was important to see how robust the tests and current algorithms were for noise print detection. The main takeaway from this article was that noiseprints can be completely removed and fool detection models. I need to take this a step further and imprint a fake noise to fool a model to think it's a different class.

Things to do for this week:

  • Finish dev4: implement a GAN

Week 12 - November 10th 2021

Discussed the results of the benchmark and the types of tests they did. Discussed the difficulties of getting the benchmark to run. Decided next steps were to start working on getting a GAN working and to get deliverable 3 on the website.

Things to do for this week:

  • Get Deliverable 3 on the website
  • Start implementing a GAN
  • Present Ref 3

Week 11 - November 2nd 2021

Pre-Meeting Notes

Potential benchmark

  • https://github.com/andrewlewis/camera-id I tried to use this for a while since it implemented the original PRNU method by lukas but there was no environment file and too many dependency clashes caused me to give up
  • most likely: https://github.com/RenatoBMLR/Camera-Model-Identification
  • if the one above doesn't work out: i'll try this one: https://github.com/lonePatient/kaggle-camera-model-identification

Things to do for this week:

  • Do a PSNR comparison with images from my phone and another phone
  • Test out a benchmark

Week 10 - October 26th 2021

Pre-Meeting Notes

Potential benchmark

  • https://github.com/polimi-ispl/camera-model-identification-with-cnn
  • Discuss results from DEL2

Discussed the concerns about how my method will be accurate. Professor explained an experiment that I could do to test my findings. We also discussed methods at which I can find a benchmark. Also need to go back to dev2 sometime and test out if adding plt.gray() makes the noise prints better since they did that in their article. Lukas' article fails with cropping images. I can try resizing and see how that works ref: A_Survey_on_Digital_Camera_Image_Forensic_Methods

Things to do for this week:

  • Find a benchmark and test it

Week 9 - October 19th 2021

Discussed the finding I had with the code I used to generate different denoise images. I found the bior3.5 wavelets had the most consistent results with producing denoised images. I didn't get the chance to test out noise generation methods as I had doubts with the scoring method. After discussing this with Chris, I determined that I would use AVG(PSNR)/VAR for scoring the denoised images and AVG(PSNR) for scoring the noiseprints.

Things to do for this week:

  • Finish up DEL2 code and update website
  • Find and start working on pre-existing code to categorize images

Week 8 - October 12th 2021

Pre-Meeting Notes

  • Share wavelet study notes and code. Also discuss approaches and techniques on how to model noise with professor
  • Code is in the folder.php called: denoise_wavelet_personal.ipynb

Gave a brief overview on how wavelets can denoise images. Discussed the scikit-image library. The professor gave me advice on how to use PSNR as a metric to decide how good the noise print without having the true raw image. Since the nature of my project assumes that all images have inherent noise.

Things to do for this week:

  • Calculate PSNR ratio on multiple images of the same object using the same denoising method. Each image take turns acting as the target against the other images. Find the max difference between the PSNRs. Then do it all over again but use a different denoising method. The max PSNR difference will indicate how consistent the denoising method is. The bigger the value the worse the method.
  • In order to compare methods for finding the noise print (For example uint vs scaled), we take multiple pics of different objects and find the variance between the noise prints between each pics using the same method. Then we use a different method and find the noise prints for the same set of images. The method that produces the smaller variances is the better method.

Week 7 - October 5th 2021

Pre-Meeting Notes

  • https://docs.google.com/presentation/d/1ly_VYzL0JL17yGcOhxmHFWWejnYXwQ_bpruRZpoO28c/edit?usp=sharing

Spent most of meeting presenting [2]. Asked Prof. Pollet to clarify once more how wavelet transforms is better for signal reconstruction than Fourier transforms.

Things to do for this week:

  • Start coding and getting familiar with the wavelet transform libraries

Week 6 - September 28th 2021

Pre-Meeting Notes

  • Will give a brief overview on all my research into the concept of taylor series, Fourier transforms, and wavelets
  • Show start of tutorials regarding wavelet transforms
  • https://ataspinar.com/2018/12/21/a-guide-for-using-the-wavelet-transform-in-machine-learning/

Sources

Taylor Series

  • https://www.youtube.com/watch?v=3d6DsjIBzJ4

Fourier Transforms

  • real world coordinates:
    https://www.khanacademy.org/science/electrical-engineering/ee-signals/ee-fourier-series/v/ee-fourier-series-intro
  • complex notation:
    https://www.youtube.com/watch?v=mkGsMWi_j4Q
  • more explanation on scaling and inverse FT:
    part 1: https://www.youtube.com/watch?v=1JnayXHhjlg
    part 2:https://www.youtube.com/watch?v=kKu6JDqNma8

Wavelets

  • https://www.youtube.com/watch?v=uk6nUkd6yQo
  • https://www.youtube.com/watch?v=ZnmvUCtUAEE
  • https://www.youtube.com/watch?v=MBnnXbOM5S4

Discussed the theory behind taylor series, fourier transforms, and wavelets. Prof. Pollet told me that I could use Wavelet and any type of signal analysis/decomposition methods for any type of data. I was concerned that I would not be able to use wavelets since common applications apply to signals over time, amplitude, and frequency. I can use any type of data as dimensions to decompose over. We also discussed the Heisenberg's uncertainty principle in more detail. It seems that a lot of these electrical engineering concepts can be applied to computer science as well. I was also reminded to try to separate the color channels into three different matrices to reduce dimensions

Things to do for this week:

  • Continue to work on dev 2
  • Present Ref 2

Week 5 - September 21st 2021

Discussed Paper 1 again to further analyze the specific method of which they extracted sensor noise patterns from their dataset. The best method the authors found was a wavelet based denoising filter. The paper used a package from another paper but we would like to implement a wavelet based filter ourselves. I also plan to experiment with Fourier transformations as they used that to analyze the properties of noise in each pixel row.

Things to do for this week:

  • Put deliverables in the sidebar
  • Read up and implement a demo of wavelet decomposition
  • Read up and implement a demo of Fourier transformation

Week 4 - September 14th 2021

Pre-Meeting Notes

  • Didn't get around to finding the z-score for each pixel
  • Took the avg of all the pictures and made a filter
  • The subtraction of the filter from each image don't output very similar results
  • Did not get to compute Z-score yet

Discussed the results of my experiment 1. Assumed that there were more white pixels than expected is because when converted signed ints to unsigned ints, the two-compliment representation causes the conversion to turn small negatives into large numbers. This turns some spots white. On average some spots will be small numbers and other spots will be large numbers (represented by white and black pixels). Also noticed larger blocks of pixels near the edges of the picture and finer grains of noise near the center. This indicates that the camera is more sensitive towards the middle of the lens. It is also possible that whiter images have less noise (larger blocks in the noise map). Also noticed that I save the noise maps as pngs, there is a little discrepancy since the input images are jpgs but adding another layer of compression shouldn't improve the results too much. Also looked at the dataset and discovered that the images are not of the same objects across different camera models.

Things to do for this week:

  • Re-read the first article and explain flat fielding and explain how their camera detection algorithms works
  • Implement std-dev filter for deliverable 1
  • Fix deliverable 1 in proposal

Week 3 - September 7th 2021

Potential Dataset

Potential Reference Code

Discussed the various ways to take sensor noise patterns and any future complications that the project can hold. Discussed the above dataset and my updated proposal. I presented reference 1.

Things to do for this week:

  • Make slides when presenting articles.
  • Upload documents you want Pollet to see to the website before the meeting.
  • Get started on deliverable 1.
  • Set up a tripod with consistent lighting. Take ten pics of a single colored cardboard and use python image library to subtract the average pixel value of the images from each image. See if you can see a noise pattern that is consistent across all ten images. Also try subtracting the standard deviation from all images.
  • Fix proposal by removing extra 7 in week 7 and put the calendar in a table.
  • Eventually we may be able to distinguish the difference between phones of the same model.
  • Download the dataset and inspect it.

Week 2 - August 31th 2021

Discussed further about the topic. Pollet made suggestions on what types of deliverables he would like to see. He also explained what his role would be as my advisor and what he expects of me for CS297

Things to do for this week:

  • Make summaries of articles.
  • Fill out CS297 proposal.
  • Get started on deliverable 1.

Week 1 - August 24th 2021

Met with the rest of his students for the CS297/298 classes and decided when to meet. Made introductions with the other students and got to know each other. Professor suggested this project idea: finding a way to change the sensor data of an image to seem like it was taken from a different camera.

Things to do for this week:

  • Find articles about this topic to further increase my knowledge of this subject.
  • Begin thinking of deliverables to meet and make a schedule.