Advertisement

Pattern Analysis and Applications

, Volume 21, Issue 2, pp 291–306 | Cite as

State of the art in passive digital image forgery detection: copy-move image forgery

  • Somayeh Sadeghi
  • Sajjad Dadkhah
  • Hamid A. Jalab
  • Giuseppe Mazzola
  • Diaa Uliyan
Survey

Abstract

Authenticating digital images is increasingly becoming important because digital images carry important information and due to their use in different areas such as courts of law as essential pieces of evidence. Nowadays, authenticating digital images is difficult because manipulating them has become easy as a result of powerful image processing software and human knowledge. The importance and relevance of digital image forensics has attracted various researchers to establish different techniques for detection in image forensics. The core category of image forensics is passive image forgery detection. One of the most important passive forgeries that affect the originality of the image is copy-move digital image forgery, which involves copying one part of the image onto another area of the same image. Various methods have been proposed to detect copy-move forgery that uses different types of transformations. The goal of this paper is to determine which copy-move forgery detection methods are best for different image attributes such as JPEG compression, scaling, rotation. The advantages and drawbacks of each method are also highlighted. Thus, the current state-of-the-art image forgery detection techniques are discussed along with their advantages and drawbacks.

Keywords

Digital forensic Copy-move forgery Duplicated detection Passive authentication Manipulation detection 

Notes

Funding

Funding was provided by Universiti Malaya (UM) (Grant No. RG312-14AFR).

References

  1. 1.
    Agarwal R (2012) Bit plane average filtering to remove Gaussian noise from high contrast images. In: 2012 international conference on computer communication and informatics (ICCCI). IEEE, Washington, pp 1–5Google Scholar
  2. 2.
    Amerini I, Ballan L, Caldelli R, Del Bimbo A, Del Tongo L, Serra G (2013) Copy-move forgery detection and localization by means of robust clustering with j-linkage. Signal Process Image Commun 28(6):659–669CrossRefGoogle Scholar
  3. 3.
    Amerini I, Ballan L, Caldelli R, Del Bimbo A, Serra G (2010) Geometric tampering estimation by means of a sift-based forensic analysis. In: 2010 IEEE international conference on acoustics speech and signal processing (ICASSP). IEEE, Washington, pp 1702–1705Google Scholar
  4. 4.
    Amerini I, Ballan L, Caldelli R, Del Bimbo A, Serra G (2011) A sift-based forensic method for copy-move attack detection and transformation recovery. IEEE Trans Inf Forensics Secur 6(3):1099–1110CrossRefGoogle Scholar
  5. 5.
    Ardizzone E, Bruno A, Mazzola G (2010) Copy-move forgery detection via texture description. In: Proceedings of the 2nd ACM workshop on multimedia in forensics, security and intelligence. ACM, New York, pp 59–64Google Scholar
  6. 6.
    Ardizzone E, Bruno A, Mazzola G (2010) Detecting multiple copies in tampered images. In: 2010 17th IEEE international conference on image processing (ICIP). IEEE, Washington, pp 2117–2120Google Scholar
  7. 7.
    Ardizzone E, Mazzola G (2009) Detection of duplicated regions in tampered digital images by bit-plane analysis. In: Image analysis and processing-ICIAP 2009. Springer, Berlin, pp 893–901Google Scholar
  8. 8.
    Barni M, Bartolini F (2004) Watermarking systems engineering: enabling digital assets security and other applications. CRC Press, Boca RatonGoogle Scholar
  9. 9.
    Barni M, Costanzo A (2012) A fuzzy approach to deal with uncertainty in image forensics. Signal Process Image Commun 27(9):998–1010CrossRefGoogle Scholar
  10. 10.
    Bashar M, Noda K, Ohnishi, N, Mori, K (2010) Exploring duplicated regions in natural images. IEEE Trans Image Process 99 Google Scholar
  11. 11.
    Battiato S, Farinella GM, Messina E, Puglisi G (2012) Robust image alignment for tampering detection. IEEE Trans Inf Forensics Secur 7(4):1105–1117CrossRefGoogle Scholar
  12. 12.
    Bay H, Tuytelaars T, Van Gool L (2006) Surf: speeded up robust features. In: Computer vision-ECCV 2006, pp 404–417Google Scholar
  13. 13.
    Bayram S, Avcibas I, Sankur B, Memon N (2005) Image manipulation detection with binary similarity measures. In: Proceedings of 13th European signal processing conference, vol 1, pp 752–755Google Scholar
  14. 14.
    Bayram S., Sencar HT, Memon N (2009) An efficient and robust method for detecting copy-move forgery. In: IEEE international conference on acoustics, speech and signal processing, 2009. ICASSP 2009. IEEE, Washington, pp 1053–1056Google Scholar
  15. 15.
    Becker D (2013) The father of art photography. http://petapixel.com/2013/07/01/oscar-gustav-rejlander-1813-1875-the-father-of-art-photography/. Accessed Feb 2015
  16. 16.
    Bharamagoudar SR, Mudaraddi NV (2014) Forgery detection in image using CCV and SIFT. Int J Res Innov Eng Technol 1(02) Google Scholar
  17. 17.
    Bo X, Junwen W, Guangjie L, Yuewei D (2010) Image copy-move forgery detection based on surf. In: 2010 international conference on multimedia information networking and security (MINES). IEEE, Washington, pp 889–892Google Scholar
  18. 18.
    Böhme R, Freiling FC, Gloe T, Kirchner M (2009) Multimedia forensics is not computer forensics. In: Geradts ZJMH, Franke K, Veenman CJ (eds) Computational forensics. Springer, Berlin, pp 90–103CrossRefGoogle Scholar
  19. 19.
    Bravo-Solorio S, Nandi AK (2011) Automated detection and localisation of duplicated regions affected by reflection, rotation and scaling in image forensics. Signal Process 91(8):1759–1770CrossRefzbMATHGoogle Scholar
  20. 20.
    Bravo-Solorio S, Nandi AK (2011) Exposing duplicated regions affected by reflection, rotation and scaling. In: 2011 IEEE international conference on acoustics, speech and signal processing (ICASSP). IEEE, Washington, pp 1880–1883Google Scholar
  21. 21.
    Caldelli R, Amerini I, Picchioni F, De Rosa A, Uccheddu F (2009) Multimedia forensic techniques for acquisition device identification and digital image authentication. In: Handbook of research on computational forensics, digital crime and investigation: methods and solutions, pp 130–154Google Scholar
  22. 22.
    Cao Y, Gao T, Fan L, Yang Q (2012) A robust detection algorithm for copy-move forgery in digital images. Forensic Sci Int 214(1):33–43CrossRefGoogle Scholar
  23. 23.
    de Carvalho TJ, Riess C, Angelopoulou E, Pedrini H, de Rezende Rocha A (2013) Exposing digital image forgeries by illumination color classification. IEEE Trans Inf Forensics Secur 8(7):1182–1194CrossRefGoogle Scholar
  24. 24.
    Chen L, Lu W, Ni J, Sun W, Huang J (2013) Region duplication detection based on harris corner points and step sector statistics. J Vis Commun Image Represent 24(3):244–254CrossRefGoogle Scholar
  25. 25.
    Chihaoui T, Bourouis S, Hamrouni K (2014) Copy-move image forgery detection based on sift descriptors and svd-matching. In: 2014 1st international conference on advanced technologies for signal and image processing (ATSIP). IEEE, Washington, pp 125–129Google Scholar
  26. 26.
    Christlein V, Riess C, Angelopoulou E (2010) A study on features for the detection of copy-move forgeries. Sicherheit 2010:105–116Google Scholar
  27. 27.
    Cox IJ, Miller ML, Bloom JA, Honsinger C (2002) Digital watermarking, vol 53. Springer, BerlinGoogle Scholar
  28. 28.
    Dadkhah S, Kppen M, Jalab HA, Sadeghi S, Manaf AA, Uliyan D (2017) Electromagnetismlike mechanism descriptor with fourier transform for a passive copy-move forgery detection in digital image forensics. In: Proceedings of the 6th international conference on pattern recognition applications and methods—Volume 1: ICPRAM, pp 612–619Google Scholar
  29. 29.
    Dadkhah S, Manaf AA, Hori Y, Hassanien AE, Sadeghi S (2014) An effective svd-based image tampering detection and self-recovery using active watermarking. Signal Process Image Commun 29(10):1197–1210CrossRefGoogle Scholar
  30. 30.
    Dadkhah S, Manaf AA, Sadeghi S (2014) Efficient image authentication and tamper localization algorithm using active watermarking. In: Bio-inspiring cyber security and cloud services: trends and innovations. Springer, Berlin, pp 115–148Google Scholar
  31. 31.
    Davarzani R, Yaghmaie K, Mozaffari S, Tapak M (2013) Copy-move forgery detection using multiresolution local binary patterns. Forensic Sci Int 231(1):61–72CrossRefGoogle Scholar
  32. 32.
    Dong J, Wang W, Tan T, Shi YQ (2009) Run-length and edge statistics based approach for image splicing detection. In: Kim HJ, Katzenbeisser S, Ho ATS (eds) Digital watermarking. Springer, Berlin, pp 76–87CrossRefGoogle Scholar
  33. 33.
    Dybala B, Jennings B, Letscher D (2007) Detecting filtered cloning in digital images. In: Proceedings of the 9th workshop on multimedia and security. ACM, pp 43–50Google Scholar
  34. 34.
    Farid H (2008) Digital image forensics. Sci Am 298(6):66–71CrossRefGoogle Scholar
  35. 35.
    Farid H (2009) Image forgery detection. IEEE Signal Process Mag 26(2):16–25CrossRefGoogle Scholar
  36. 36.
    Fridrich AJ, Soukal BD, Lukáš AJ (2003) Detection of copy-move forgery in digital images. In: Proceedings of digital forensic research workshop. CiteseerGoogle Scholar
  37. 37.
    Gan Y, Zhong J (2014) Image copy-move tamper blind detection algorithm based on integrated feature vectors. J Chem Pharmaceut Res 6(6):1584–1590Google Scholar
  38. 38.
    Hashmi MF, Hambarde AR, Keskar AG (2013) Copy move forgery detection using dwt and sift features. In: 2013 13th international conference on intelligent systems design and applications (ISDA). IEEE, Washington, pp 188–193Google Scholar
  39. 39.
    He Z, Lu W, Sun W, Huang J (2012) Digital image splicing detection based on markov features in DCT and DWT domain. Pattern Recognit 45(12):4292–4299CrossRefGoogle Scholar
  40. 40.
    Hou DM, Bai ZY, Liu SC (2012) A new algorithm for image copy-move forgery detection. Adv Mater Res 433:5930–5934CrossRefGoogle Scholar
  41. 41.
    Hu J, Zhang H, Gao Q, Huang H (2011) An improved lexicographical sort algorithm of copy-move forgery detection. In: 2011 second international conference on networking and distributed computing (ICNDC). IEEE, Washington, pp 23–27Google Scholar
  42. 42.
    Huang H, Guo W, Zhang Y (2008) Detection of copy-move forgery in digital images using sift algorithm. In: Pacific-Asia workshop on computational intelligence and industrial application, 2008. PACIIA’08, vol 2. IEEE, Washington, pp 272–276Google Scholar
  43. 43.
    Huang Y, Lu W, Sun W, Long D (2011) Improved DCT-based detection of copy-move forgery in images. Forensic Sci Int 206(1):178–184CrossRefGoogle Scholar
  44. 44.
    Hussain M, Muhammad G, Saleh SQ, Mirza AM, Bebis G (2012) Copy-move image forgery detection using multi-resolution weber descriptors. In: 2012 eighth international conference on signal image technology and internet based systems (SITIS). IEEE, Washington, pp 395–401Google Scholar
  45. 45.
    Ibrahim RW, Moghaddasi Z, Jalab HA, Noor RM (2015) Fractional differential texture descriptors based on the machado entropy for image splicing detection. Entropy 17(7):4775–4785CrossRefGoogle Scholar
  46. 46.
    Ju S, Zhou J, He K (2007) An authentication method for copy areas of images. In: Fourth international conference on image and graphics, 2007. ICIG 2007. IEEE, Washington, pp 303–306Google Scholar
  47. 47.
    Juan L, Gwun O (2009) A comparison of sift, PCA-SIFT and surf. Int J Image Process (IJIP) 3(4):143–152Google Scholar
  48. 48.
    Sarode TK, Vaswani N (2014) Copy-move forgery detection using orthogonal wavelet transforms. Int J Comput Appl 88(8):41–45Google Scholar
  49. 49.
    Kang XB, Wei SM (2008) Identifying tampered regions using singular value decomposition in digital image forensics. In: International conference on computer science and software engineering, 2008, vol 3. IEEE, Washington, pp 926–930Google Scholar
  50. 50.
    Langille A, Gong M (2006) An efficient match-based duplication detection algorithm. In: The 3rd Canadian conference on computer and robot vision, 2006. IEEE, p 64Google Scholar
  51. 51.
    Li G, Wu Q, Tu D, Sun S (2007) A sorted neighborhood approach for detecting duplicated regions in image forgeries based on DWT and SVD. In: 2007 IEEE international conference on multimedia and expo, pp 1750–1753Google Scholar
  52. 52.
    Li S, Zhang A, Zheng Y, Zhu T, Jin B (2009) Detection of copy-move image forgeries based on sift. J PLA Univ Sci Technol (Nat Sci Ed) 10(4):339–343Google Scholar
  53. 53.
    Li Y (2013) Image copy-move forgery detection based on polar cosine transform and approximate nearest neighbor searching. Forensic Sci Int 224(1):59–67CrossRefGoogle Scholar
  54. 54.
    Li Y, Wang H (2012) An efficient and robust method for detecting region duplication forgery based on non-parametric local transforms. In: 2012 5th international congress on image and signal processing (CISP). IEEE, Washington, pp 567–571Google Scholar
  55. 55.
    Lin HJ, Wang CW, Kao YT, Chen S (2009) An efficient method for copy-move forgery detection. In: WSEAS international conference. Proceedings. Mathematics and computers in science and engineering, vol 8. World Scientific and Engineering Academy and SocietyGoogle Scholar
  56. 56.
    Lin HJ, Wang CW, Kao YT et al (2009) Fast copy-move forgery detection. WSEAS Trans Signal Process 5(5):188–197Google Scholar
  57. 57.
    Lin SD, Huang YH et al (2009) An integrated watermarking technique with tamper detection and recovery. Int J Innov Comput Inf Control 5(11):4309–4316Google Scholar
  58. 58.
    Lin SD, Wu T (2011) An integrated technique for splicing and copy-move forgery image detection. In: 2011 4th international congress on image and signal processing (CISP), vol 2. IEEE, Washington, pp 1086–1090Google Scholar
  59. 59.
    Lin Z, He J, Tang X, Tang CK (2009) Fast, automatic and fine-grained tampered jpeg image detection via DCT coefficient analysis. Pattern Recognit 42(11):2492–2501CrossRefzbMATHGoogle Scholar
  60. 60.
    Liu G, Wang J, Lian S, Wang Z (2011) A passive image authentication scheme for detecting region–duplication forgery with rotation. J Netw Comput Appl 34(5):1557–1565CrossRefGoogle Scholar
  61. 61.
    Lowe DG (2004) Distinctive image features from scale-invariant keypoints. Int J Comput Vis 60(2):91–110CrossRefGoogle Scholar
  62. 62.
    Luo W, Huang J, Qiu G (2006) Robust detection of region–duplication forgery in digital image. In: 18th international conference on pattern recognition, 2006. ICPR 2006, vol 4. IEEE, Washington, pp 746–749Google Scholar
  63. 63.
    Lynch G, Shih FY, Liao HYM (2013) An efficient expanding block algorithm for image copy-move forgery detection. Inf Sci 239:253–265CrossRefGoogle Scholar
  64. 64.
    Mahdian B, Saic S (2007) Detection of copy-move forgery using a method based on blur moment invariants. Forensic Sci Int 171(2):180–189CrossRefGoogle Scholar
  65. 65.
    Mahdian B, Saic S (2009) Using noise inconsistencies for blind image forensics. Image Vis Comput 27(10):1497–1503CrossRefGoogle Scholar
  66. 66.
    Mahdian B, Saic S (2010) A bibliography on blind methods for identifying image forgery. Signal Process Image Commun 25(6):389–399CrossRefGoogle Scholar
  67. 67.
    Mediabistro (2009) News photos that took retouching. http://www.mediabistro.com/10000words/10-news-photos-that-took-photoshop-too_b328
  68. 68.
    Mikolajczyk K, Schmid C (2001) Indexing based on scale invariant interest points. In: Proceedings. Eighth IEEE international conference on computer vision, 2001. ICCV 2001, vol 1. IEEE, Washington, pp 525–531Google Scholar
  69. 69.
    Moghaddasi Z, Jalab HA, Md Noor R, Aghabozorgi S (2014) Improving RLRN image splicing detection with the use of PCA and kernel PCA. Sci World J 2014:10CrossRefGoogle Scholar
  70. 70.
    Moghaddasi Z, Jalab HA, Noor RM (2015) A comparison study on svd-based features in different transforms for image splicing detection. In: 2015 IEEE international conference on consumer electronics-Taiwan (ICCE-TW). IEEE, Washington, pp 13–14Google Scholar
  71. 71.
    Muhammad G (2013) Alghathbar K (2013) Environment recognition for digital audio forensics using mpeg-7 and mel cepstral features. Int Arab J Inf Technol (IAJIT) 10(1):43–50Google Scholar
  72. 72.
    Muhammad N, Hussain M, Muhammad G, Bebis G (2011) Copy-move forgery detection using dyadic wavelet transform. In: 2011 eighth international conference on computer graphics, imaging and visualization (CGIV). IEEE, Washington, pp 103–108Google Scholar
  73. 73.
    Myrna A, Venkateshmurthy M, Patil C (2007) Detection of region duplication forgery in digital images using wavelets and log-polar mapping. In: International conference on conference on computational intelligence and multimedia applications, 2007, vol 3. IEEE, Washington, pp 371–377Google Scholar
  74. 74.
    Ng TT, Chang SF (2004) A model for image splicing. In: 2004 international conference on image processing, 2004. ICIP’04, vol 2. IEEE, Washington, pp 1169–1172Google Scholar
  75. 75.
    Pan X, Lyu S (2010) Region duplication detection using image feature matching. IEEE Trans Inf Forensics Secur 5(4):857–867CrossRefGoogle Scholar
  76. 76.
    Popescu AC, Farid H (2004) Exposing digital forgeries by detecting duplicated image regions. Department of Computer Science, Dartmouth College, Tech. Rep. TR2004-515Google Scholar
  77. 77.
    Qureshi MA, Deriche M (2015) A bibliography of pixel-based blind image forgery detection techniques. Signal Process Image Commun 39:46–74CrossRefGoogle Scholar
  78. 78.
    Reith M, Carr C, Gunsch G (2002) An examination of digital forensic models. Int J Digital Evid 1(3):1–12Google Scholar
  79. 79.
    Rocha A, Scheirer W, Boult T, Goldenstein S (2011) Vision of the unseen: current trends and challenges in digital image and video forensics. ACM Comput Surveys (CSUR) 43(4):26CrossRefGoogle Scholar
  80. 80.
    Rogers M (2003) The role of criminal profiling in the computer forensics process. Comput Secur 22(4):292–298CrossRefGoogle Scholar
  81. 81.
    Ryu SJ, Lee MJ, Lee HK (2010) Detection of copy-rotate-move forgery using Zernike moments. In: Böhme R, Fong PWL, Safavi-Naini R (eds) Information hiding. Springer, Berlin, pp 51–65CrossRefGoogle Scholar
  82. 82.
    Saban (2013) Imgur image splicing forgery samples. http://imgur.com/gallery/lo7vP
  83. 83.
    Sadeghi S, Jalab HA, Dadkhah S (2012) Efficient copy-move forgery detection for digital images. World Acad Sci Eng Technol 71:543–546Google Scholar
  84. 84.
    Saleem M (2014) A key-point based robust algorithm for detecting cloning forgery. In: IEEE international conference on control system, computing and engineering (ICCSCE), vol 4. 2775–2779Google Scholar
  85. 85.
    Sencar H, Memon N (2008) Overview of state-of-the-art in digital image forensics. Algorithms Archit Inf Syst Secur 3:325–348Google Scholar
  86. 86.
    Shen XJ, Zhu Y, Lv YD, Chen HP (2013) Image copy-move forgery detection based on sift and gray level. Appl Mech Mater 263:3021–3024Google Scholar
  87. 87.
    Shivakumar B, Santhosh Baboo S (2011) Detection of region duplication forgery in digital images using surf. Int J Comput Sci Issues (IJCSI) 8(4):199–205Google Scholar
  88. 88.
    Shuai X, Zhang C, Hao P (2008) Fingerprint indexing based on composite set of reduced sift features. In: 19th international conference on pattern recognition, 2008. ICPR 2008. IEEE, Washington, pp 1–4Google Scholar
  89. 89.
    Su H, Crookes D, Bouridane A, Gueham M (2007) Local image features for shoeprint image retrieval. In: British machine vision conferenceGoogle Scholar
  90. 90.
    Su Y, Nie W, Zhang C (2011) A frame tampering detection algorithm for mpeg videos. In: 2011 6th IEEE Joint international information technology and artificial intelligence conference (ITAIC), vol 2. IEEE, Washington, pp 461–464Google Scholar
  91. 91.
    Sunil K, Jagan D, Shaktidev M (2014) Dct-pca based method for copy-move forgery detection. In: ICT and critical infrastructure: proceedings of the 48th annual convention of Computer Society of India—-Vol II. Springer, Berlin, pp 577–583Google Scholar
  92. 92.
    Uliyan DM, Jalab HA, Abdul Wahab AW, Sadeghi S (2016) Image region duplication forgery detection based on angular radial partitioning and Harris key-points. Symmetry 8(7):62MathSciNetCrossRefGoogle Scholar
  93. 93.
    Wang J, Liu G, Li H, Dai Y, Wang Z (2009) Detection of image region duplication forgery using model with circle block. In: International conference on multimedia information networking and security, 2009. MINES’09, vol 1. IEEE, Washington, pp 25–29Google Scholar
  94. 94.
    Wang JW, Liu GJ, Zhang Z, Dai Y, Wang Z (2009) Fast and robust forensics for image region-duplication forgery. Acta Autom Sin 35(12):1488–1495CrossRefGoogle Scholar
  95. 95.
    Wang W, Dong J, Tan T (2010) Image tampering detection based on stationary distribution of Markov chain. In: 2010 17th IEEE international conference on image processing (ICIP). IEEE, Washington, pp 2101–2104Google Scholar
  96. 96.
    Yang ZC, Li ZH (2012) An anti-jpeg compression digital watermarking technology with an ability in detecting forgery region for color images. In: 2012 international conference on computer distributed control and intelligent environmental monitoring (CDCIEM). IEEE, Washington, pp 93–97Google Scholar
  97. 97.
    Zeng W, Yu H, Lin CY (2011) Multimedia security technologies for digital rights management, vol 18. Academic Press, LondonGoogle Scholar
  98. 98.
    Zhang J, Feng Z, Su Y (2008) A new approach for detecting copy-move forgery in digital images. In: 11th IEEE Singapore international conference on communication systems, 2008. ICCS 2008. IEEE, Washington, pp 362–366Google Scholar
  99. 99.
    Zhang Z, Ren Y, Ping XJ, He ZY, Zhang SZ (2008) A survey on passive-blind image forgery by doctor method detection. In: 2008 international conference on machine learning and cybernetics, vol 6. IEEE, Washington, pp 3463–3467Google Scholar
  100. 100.
    Zhang Z, Wang G, Bian Y, Yu Z (2010) A novel model for splicing detection. In: 2010 IEEE fifth international conference on bio-inspired computing: theories and applications (BIC-TA). IEEE, Washington, pp 962–965Google Scholar
  101. 101.
    Zimba M, Xingming S (2011) DWT-PCA (EVD) based copy-move image forgery detection. Int J Digital Content Technol Appl 5(1):251–258CrossRefGoogle Scholar
  102. 102.
    Zimba M, Xingming S (2011) Fast and robust image cloning detection using block characteristics of DWT coefficients. JDCTA Int J Digital Content Technol Appl 5(7):359–367CrossRefGoogle Scholar

Copyright information

© Springer-Verlag London Ltd., part of Springer Nature 2017

Authors and Affiliations

  • Somayeh Sadeghi
    • 1
  • Sajjad Dadkhah
    • 2
  • Hamid A. Jalab
    • 1
  • Giuseppe Mazzola
    • 3
  • Diaa Uliyan
    • 1
  1. 1.Faculty of Computer Science and Information TechnologyUniversity of MalayaKuala LumpurMalaysia
  2. 2.Kyushu Institute of TechnologyIizukaJapan
  3. 3.Dipartimento di Ingegneria Chimica, Gestionale, InformaticaMeccanica Universit degli Studi di PalermoPalermoItaly

Personalised recommendations