Spaces:
Sleeping
Sleeping
Commit
•
c1554bc
1
Parent(s):
a634839
Upload 9 files
Browse files- .env +2 -0
- app.py +30 -0
- model.py.enc +1 -0
- model_hayabusa.py.enc +1 -0
- model_takemura.py.enc +1 -0
- packages.txt +1 -0
- pantolon-v3.xlsx.enc +0 -0
- product_similarity.py +257 -0
- requirements.txt +11 -0
.env
ADDED
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
1 |
+
GOOGLE_API_KEY="AIzaSyA8O9tEtV6SDzpnuN6Svo0QieCSjzjJehE"
|
2 |
+
FERNET_KEY="joomdl56gqIDbcpvSHeLofKnlSRfkeL3iBSegc7cDW4="
|
app.py
ADDED
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import streamlit as st
|
2 |
+
from product_similarity import page1
|
3 |
+
|
4 |
+
# sidebar
|
5 |
+
st.sidebar.title("Deep Fashion")
|
6 |
+
st.sidebar.write(
|
7 |
+
"Deep Fashion, giyim ve moda sektörüne yönelik yapay zeka tabanlı çözümler sunar. ")
|
8 |
+
|
9 |
+
|
10 |
+
def page2():
|
11 |
+
from tensorflow.keras.applications import VGG16 # Assuming you have these models
|
12 |
+
|
13 |
+
st.title("Ürün Detay Analizi")
|
14 |
+
st.write("Welcome to page 2")
|
15 |
+
|
16 |
+
|
17 |
+
PAGES = {
|
18 |
+
"Ürün Benzerlik Analizi": page1,
|
19 |
+
"Ürün Detay Tahminleyci": page2,
|
20 |
+
}
|
21 |
+
|
22 |
+
|
23 |
+
def main():
|
24 |
+
selection = st.sidebar.radio("Özellik seçin:", list(PAGES.keys()))
|
25 |
+
page = PAGES[selection]
|
26 |
+
page()
|
27 |
+
|
28 |
+
|
29 |
+
if __name__ == "__main__":
|
30 |
+
main()
|
model.py.enc
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
gAAAAABl6kuLZac1s8ZIEaASGxbrBd6xMJnR_-pwEkRh2mTsik68t_w3xyFB6b6FfFaPONoQrNX8d76abaVpaAL947Ol31IuhkLqxkMkujMS0CYq9t1XQFcTiHlEoAbL0lWEvq73G6EITwQPEJV-1gsKkn11OzClZyevMcXZxv2DRdSr1ZmQaSXiUC9Gqqr1CW-ELW146HqWVWPrl5kLa2go5_jMEwl-YFNg2XqPG74wwfuzpK7pHItim4jeY6k2r3gwY09dfFOyY5xtXzog0B9x2rXypuUtdq-QgFpMkQIQ0p00oEqZPXI81mI3E4NokibvTYzaRXjE9R41ovdmiqZ6Ajirs8Lod_OKnJRXpAyzacpC_HUuWNnq1FEVk_V5aK1kjuS2VEuyPgOVlGCdQUMr7VeDnplnpxiedHnZp2lMBkr95CMQtgZCdvD0gmksYPN2147Ecz8HyZii2vQwcFFV-wH7Ip3kNx2-grOmekP_fTkWDnukzAOKDVYgXxi61srvA8dhrBduFldNTAPxBI5OUfrPhdxeBvFtbBc8Aw84H4Jv9W1SkRAsK831jrg45q1oTl6t3fSrQD618ERimHuKcDJw9a8oZYMjynrYONp3OOd6jLoECK5bNyFDYT0sG9TSnilkToqcfPpLuNYDImB-bZ_RpSBBLDtNG2in5WaefAec9CJHvSj_66vS0rXC2PDT9q-RIuWx9Y_YLnuEcPfLJ0g7kka153h6raCBSaDgVri8jxadHknyCZMj-UqNcJ98dbELWDOCZuth6P2jociDtc8WtWMR2KwkjSjuDYVfttPd90L37DRQPx_4AcSlwJpchK2QTpnwPf4tApekGMuy5MWDhOxUTbsjn3B79tLeFee_bHzY66LB0lepd__snGRNFeMlgzSg5O6EGVS0iIu3Z-sWnqdc5gpzrh-UpNNC3qvDaFB2LDUYFyVxKByuIQWdwnbbiGCRvw--kCESlx_WiAZ514mYO_s9bWvQpAdu_befSeMhozz1pYqUrG_pOpW_i8zU62x27QG4rUI57GWhhyYbPhcF4Uo6y9UaefuWIN1IvihC66YyYTLsh2WLt7ftscooNONpbv1DKMuAJfi1lxGL-qgT317lspiPv4mieV5sML7vZD_8IpSKEMplqHF-zkTkzOa9Sm_UyQAh5ZcHu0SQvQM1Q6-k4hgXWVAYaz3x3Vd54mjHnaJVOkD-fTnd8oQ0R8mkOhF-SZvMZ6aTxxE2QHK_3hA4Gc1oQUVxXBVJf3dYZNgBikRx5LImHRf0OvrYIn0wI4LTHH4uvZ26K9-5zj0jWKRQ975BR3pfe-XDzP1EIlXN3QmKmvLNhzAgCn9zCkWJkLEtCldHdkkKy6J5QJFAkRtg69qcLpBdoXPFNoSc86Mpf9ymRL7mrK_MipIbpesMBx_5urw77ADGsQ9gjo6OD4zONpNuR0Blj9QrTdln3_yLewW9pQ2_oKeEMG71M4hCHn1M3VtoZQE04AUX4BiVBKMZMguucKvAXyJJ5YD3AFd0v-Wtcx-vOTktJIS8pJgfrV2FhmlJWe30Q6qWMs0aZM69YaqYVmIx632GhJchand_QNgNNgB7VZRGgvq0k-Q17ebsiO-3NmntTdfsEEMdx41T4EcJ5E_eAtNbS95mc6FV8KeB5Fx5sOf4oaeRUDKc1CS_guAzQd4cvRIpDq-OYIaRo88dhUxw2i7ZzSahDS_bkm7HIobq5xGuR8N8N3bJpuvz10Cz6tzHErDye5L6q3xOkCPSmef6EYXiHJPgUtsS9KirjBVaS5GL6pqaCgWcJ0ulHlWv4qUHv-ufB59m71bolSmlTCkUQcAuUC7vlvrw62v9uYtvf4v2pxBh4oLQdloJ0JRlaTKLHDW5zARFFD6HmU9puOi9hXQ72C9Igag6_31Tj35QDutF-Yk2llugSVTiZvWiEDFZu5AR7jTo6_uAVj7MDh6zMbEx8oSxRDeeI1QzbJrJAzmon0IwHysy0lB2MzflpDRrN_4Sfve0LC9iI5wuKrap9InAeACrLHdT3ShYGXv7N9pl9DhPyWXzzOeTkQnMd1jZ4lNcs_L6V9IzDceEMGO1qTvr1Go4I4XdkaVGmnM9cn3HYOJU02qcp0waCbMcllIDmMxQzifl8EosY4iLVf6YVQxVlGCqiFxCcfADHAZrjV6nr6I2lwy8JkKW_wbEjt36kUcoawckhnVf8mLubtt-PQz0vm4WW63HCu8ZmviNUQz6ptMjVQN4R1pDi9oeFhpcruCd7fj3TtS62DRxG3bWxRRKnnGlWPdxA7c7GqcFnIgjYb5ZMhchTuZKnlfOd2q3jEhUIiESPm71Za84ujhoNEU2AAzIrn7RMX7y03rRYvUsVCZFIYpKUmyMnoRCYX-T6n5QRvlVbmY__gIcVAWr6MsQcZ8UD4DADTRw02q6oo9yCBGZqWv1tc4qv00OhO42wxqpZ7DadaJUZ-bbF382cZlJcmVE42F6nvv52JYvK76QdXnjXzm2LRsWappCWx3A1D4oAfZS4LPnCX6iqRYvyl2eCibcjkAHOcJjb6JYH_GoXDPtGNQsNdElHaD5vPfbowFM8RoUwm8mwf5ZNpfioY_sr--KHXbTKKe5nHJbsGPywxpaL4mpzykzk3atT54k0j5DVHJLWN4Ie36m5PqrdcYD_cBwbaAP_1hjDh9pSAWGHdfeht-GQwV6g6tOpB358g9vqCiaGC1a9Qs2mmW2PHDrAGxdk74cIJcdA44Uo-ds25EDFt68657iVWUaUt2G20d3L3gYr8qCIH47-qiRGMA20CUu7HcbwjWrONRygFyVdjFOrzjaoO_LYSo8sX4rfg9hVBTM90rrWUJJssco344792EaGlyPGVGEIj9e0oKRORLpx8MakOG0DTXoKFsTlJBKbzpSCpAs2vyblH919VX34JSWgu83vTdeam3NsaEPtBp-G4EHqdBppRrY3HXkGekn0rbL_ikRKsfiHPVMfexIQdweWTMFZ55mx-xbr8V36PcxWfMRRD5Bxluxt4hGRvAFriMmEQ-a5NUWMmI2OY9ilW5x1Kr4nTqtJC_IPcWKgnitWq6-qbOEMcStVu1HN6RQQD12snZ1OB3qjSZrFkHWyuBq2qBFewfDTiSGv-pC8f-teO0ckKwMnoIYtnBHOSN3DMVy1dI2b-T37xYLvWjoVnkeNFnHG54JIJms0btOwLw11LeiAgtV2s-rc-3GQDzY4bhJTui_lTYPMzdJ805y6-VoRZBy_xZDH2sRoVYdi4Wm1wW21vn958OONm-snSX863AdOaQXGa5UDlhcT8DIroOKWbcN0-j1bbvURFgaZfw3p94l1JTNnn99FiI9dJJ0E2JFNPFeWirtHXnRUxa03qpUwc4IpSPirWSXdIP3wACqw9LAwcjeSuxFYOIquA-4nkad_rhxFGlc867jE5C_Gg4MuRN1aQ_-yVnxPFD5mFWarUHaRD_6hDXimOJ5RWE6rqVjLxDtlllJIutIsqVTd1_LNAccf1JSioCRS1kRswS-hII1tmNB7u--w-UKBTRqSRWcvOnv-Knlj-iyg5Unm02OujULUycYCgv3Jzkap7_-J7EO6clIgUWP9iifm4V9gN9jqzGSmnriNBpja1jxGL-q6FsaPhs5oFUIb_Zj_aaattFAKqwPuIphlhiVEG5rgtRxzvr_57o7CQb-Mo1TPY3UjAiM9LbJuKQtbpTxl_kcjRjVTS9d5Q3iUKvQeOMx0NQQFnor-IutU2WG1F2nXn4N3OvD7PqPKKz6J0asrd57ZeLmvGte1u5yHIaNxlnrQtr6eta522evd3mA8q-qJ148D22jwkBpmZht732aKGYCaoarx5nO38OvRO3vjnuRibioN7mAuyZB6xBT1hkNiGv9DklzECXMIWzfTKWnQLfxB3WiCtEh4my8dRYcrQJRob3T8RXsB6UGOx2JtmIc--kth4A_E1QDiSeD233t1sd2LxABT3Y5KogIJ4YfvOYTsUF6Ud_BGxnXBhB-_woKjdUTBB9xKwgxpUGTUWzcG3XX6VLOkZxsKvYTVnsHPes2QRIsnY9FrYwLUKH4Ruaiy6iv9HjcDYr-D_w5bDTmfv6nUmhDOZN_q4K_3SZH6finKl53pNn4ZATaFtIc5gNU8f6j4FwIxlyJ-VTMhwTdMWpTZkNaHzOSVVChQAiQf7Q75CM0geEf-FFUaYePTWpNUmcWVlYnsDidaxK2w2Rxk-dQfskRc2QJ5qhTLnbOwYejvRFvxo6Iv1S_a6vBxESSecGm17OgIxZz_xxmOTqiI18tput6Wp4wpjv4PK_mzDzACdMbzYtNMIQHxM9dgqSeOCHZwCFY922qpWA6ssBaOurfFSacTgXPsYUJjNobe4Su9flnGgszdtAFos22qiXZJlDXat-TiU4VNm_clL2Q5uURFjEbbdlG4-JOKz5BZ-vckIJmKonVL-ceayriyv2FzbmXxAxaTBpDqHK3Pqp8HY6smFGK1k-253OL844pk4mmmjSlzh30AKP-8WiMi8m9CdKTmOgDyjtwVBwHJE_X6f3KWp2If0J1G4zuxaCd_Bxp93-EHUXwdjWLX0u_my_24odxpBBH_kxgSNWxYEYBirWwPujgS_4TpjKKhb7dU6uiDK049TxJNiqL6xyDm0zUfUaQ7IFHn_C4eKYme7-_W4pW3TSqjL-gWgUh7mnYKmgwjVvCOld3j1HsIU4XKPuWBPo-iAwTSVlXM3cddYgcBvccd_y91sEJ67TXmC8dTz4YRFXD98b3zszObEfOA6dvepaHqAESZ3s3kPgjhFJexUbAlhC76lClwZGviZQZ37ovzLTY0dU_GzmjY9R-KwQarbVRxwXC3Ot-04JHaM28EeVT1h-OIIveQO6fsjdtPbgCkWg63dIQOeNsCYiZZodvLbAgGSrwxDwR4LgY7ZCV-QFPW-v3EsM3cjhgypmc90IPpubWozmCWm3Hnimdhq8vAjvDOgMzRS4P4QImmBjscHNl8L0yOx06YsBl0T72owH9mbZgnIIpCrCpyJR69_6d-vvr4DRb9VwbtVLIS7um6fhZ9gRE-yDwMVuyufuQ52DPgjkdq_ZYDcdX7Sue3nnCgPQjnMdeO5W5YqXi018ScKGz8JS5AOK664WToyx0Q7brMm6KcneLR7l-OckzHPUaWyfh2Mdyic8Fe6VHcV9RQauDkvZF9xhXSjiMcv4aWGOdf0CpcI_fB4pazuRrAh-hy1gaAvLmgE4MPShXfavYp6uXtli71HLZ4b5NFdV0jOxReaX1Y17DCDcOb4XyJjmH5ex2kEL8IlBdg44-uqqijAckIYE6mY7aH513xpyHasH8lzkPbU7IlygvyI_f1fC_GNYDabY12_JeSZc6xGPc5Tqb_58C7XQciUSTcuMk8QonmoqmidKjj7SGtreZBBo_9oiULJo=
|
model_hayabusa.py.enc
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
gAAAAABl6zMdo_5daBSMNeIUt6xOOnQoIJpg4UbMq12fIGfHUdAyNBTEX8pEsVv9exHA8UrFRE5-mdYjrt8bbcsBGslBGACHJ-q4g1Z32239QVQJaAdZ71n4Hx9to7uJAXfwluWF0p0ouxg6jGy23N00b8RpFD9KsWqVi4J6mSrc5WoDfGDyXBvw7ND3jBhEVtpogKDtt0J0Bm0KVp_xDaTjFf222de9mgcw19dVgAq1SCNAeUgCbg5SW4l5Rcee8o-mfovewiID-7er1lKOQyqDoszkmbK_NW9-jzMTwSp7HhBeImh7DAcJC9DxjCtfw7ZmDfOxXGj1J-UQjLqgrzldQiEww92xw3sPHQA-e58KS2SgPSwZVFZx-mFf_Sv3mFLDf-1GUUIc7oncSeyesaks-kbqIrcaM7C_s-ZvwqeCLy3xevL7Nxv6T_BCurxB8raxQfBnUkr9a-fnpfKJQTuIBxdVCLUJuBVcDMqcctQrk6CFFHfxGnIkXauXh4ISHySTw_JZ_hWtteM3o5J1cDC4iMrZvSwnuOP8jW79LdfhJxopEhmRyhKXulqF6Zn55GKthIhiYZTElhGYnzxju0Y92r9tW9O8AB9Cg9HonFFjwUlsGIiNHYlBE5VzvsPZ5EQOI9TEO5LwykwN4AuoJI4VfncHnvXn9nC1ciYuWJNJ4KWly89An-El6FCb5PAiRy81nIX4Robm-CmmBTJAproDsmrmi4hKdNIq543wnoLwNxZpD8wnkJYVZWMoIZZZcxAV9WMfKYkTozComw0uj31XMSErdmoXbwaKRInJ7Kwq2C3SVdplnmeLlmRkDJMAjwS10-iiBu3XjtAijJCiB22u8QyzfDT19P87HQbQqexJDn09T2_X7mGD5tG-oTsq-qarjklEm4nDEGZ_UdCYj-Pw6d_obAA0iSvXAexf7MV_4rWZatElYjb88EDW68EsTGqF5JfmY2ps6EZ_ejUW8m9WPENDbtzxuzT-tUwURS_g164Z064ro-tJf0fYDyWInUPEz_TIH3iO7yGVTFEiFuLnGsNVvAtov5H95sA6k1s4QqDbYjmxzN2kgR9-BnrPeHFGda1gI8fZMSJwcrySQsiLmleG4kfbAnVGpIeANp_aUTaijd68tCvHuuP3ukEAmJLzDb93iE6AAMwDI6XD8tpuIF5zjPFUn-3SFBZ2g_b9qhElLQxWjt7CKFtxcAeV0ARIbYrmww2oLfz0OSDu1O-5wlYQsBt41o2wrib5_Qt3cMh5wSMgUXOs2io2POUfTEUC4JYw5mMMhqqcBisMZ3ka-o8QxoqtHyUwY98yL6lmICGCCABSrWErG7A792PqYnVwddwnrZsMSUL74HpziFLbbJnTQZZVR3UIm0VNdEgWYlG0uwA5bOxct1-HoNvs4QHNk07Edfbz0oObsJMS7TxelZ28Nm_PpR09VE36IyVaX92Q8naYF7_2RpOkFTYOsNC-hqZTnmCtQ1B2oiT4ths9_u34Nb8DWo6bADYDzFfqDTZaUjSFwbZgyGJ8I8cAI9hExw9PfsdmQDedcHJmiPvAGqvxMvyBh8WpagYv9-wo0KTV7z8vxPznEswc6m5PXpcjI0Xt3fS258cSH4UR9ftM8IonwnEMS8yaGVammBZ_mNLsWnIXlHtDUQg2gWPDE5UkzvMkj9L3v7kK-qH6SMPBhtVEwoMNOAWNz5haKX2wPQU67B34rpIvOHAgxWw9m1HelyMJ6Ov_u_GuRdTBiG5dOPYhIXx5mwrEoUVmQ_Ep5Py1odzJncQKTp0fzg-5uV5UQ3LAHbFrbmpCSVdQc7esx4Xo-nHo1hpfTyVDR6Sva4-emmrKO11hX3oLHfoIyAl-jiQpP-hHe5exepA1Zj1CnHU40jy7Sug3v1_CiXx69v1BjblyoJeLbZ7kmYr0W5R1N-DJ0PtUUqpx8i0MOVgJSxypDFV8k1nv-8LQzLsem2P6C_TAuI2gsC6YvsnuJET1OapZJm1KzMZVPfEApzXr8ogxcFOiN_yz5vK7SXI04veiBag6XkOwE6A8MctWMhDH2WcqeHGbnlnx7PrWhiWdlg3kpMxsQDTiVNURv79w0NeECtkeRjSa3-mJoeiVAjSuO1B4HWvXi3TSxtCJb6jBuXrGTScUlPk_jc8Z0X9xz5S0ZyRAzqiK2PnYy2stt-X_V6dDGBi5-Mbc9zrlt3XByZQCQ0efTsZGsqjhzBipTDu0pM_X_jptOoyf8cSCnHdIj8aF6Vm3way2lXJahkmlNaOq4TxVK8qhyXco7Hzbe273AtvoO8RwRJz_Iup6Yze-JNz4Zr_w1Ns9n7kSEJ-6g7XQVbfGbjCNkYvbTnK8ilrrBG9bI7PycqtRdThpewKA-nwaV6Rm8PSVNtQh8qT9OaKP7gUIO3FIKNVgsTyEDPKGqg6BJpRwwBcuKF8IRvXCDIETCbJniZAlBeCO-Efb84MUgocLoxqwFt0ddr6qrl7eolKt-VX-7SDMx20oO-HCNzl-5tWZG0-_5wQUdqqHEVqrX7MCCJoSB5QbxAIdek2kVSZSMZR9_4e17o-NPu7XIPTP-ojdYMiAVjv5fWMy3nY_TKgvOI8_f_1HR4-gWEYhRiN4DBihTfuDp346p3MyZitDKdgAh2oQC9JY1tLu5tHVS8HDDjDJwVzNInfmKNGn-jDcqIvo2RoK0mErj0lB0y96fEkH-x6lyixCtZLIhCO6t9efIRnRhscG6qPqS1VTNwMdNHYQQavkl6cPyPSXECp79IGkHU1v8yuh7ikYO3ZcPhKeY3Hnzey1LLD54zsKbxPzn90we4Ayo0uR13FD26XTgEMEfPtcwIv17lql12Vy6_GxZmyjZQFHyDuwOhibh6eJJoVG_lkan1WvGmFmy-ArqxY-aflGhTIfUyjF4J9deShmWJUfPxmlFh3gVFWidrMvALjpwzj_Vn9n_naifZpM4ItR6Cf6Ls7voZOw_MDeElYrBWRk13EoUMBXQkSTkrRG9SKUBx6yraNfXL08U1o00ZbEtppW2IFHuTlSmIG--2jNqsQ5JWmvxeNCIvIuKaMsluARcL36yHfGfvukDhOX1YmV7i3Lce0rkD-DUWn2po8cL_FlAk4HpF0k4EbjWDK6ZpYYnyBCBjUFPALlr99rpyHxc5UTsOs7KAcqIzci5yQ8HMnxzu0ljMQ-JOab7rLlK95cIGRJ_zYvqn3Y4smqsuiUfYyQXpKS8agjmhxlKbSCdCzbafxoltAJ8eeNzkZN2e_yLRVGrMuU50hO1oBBhr58_VlG1ZNWXKlETTMC3EK5WddHQ9eCkknQH-7k1ziKt_fwDcdrzTTdj4zUn6yAxfdfzDhXUw_5GjVx5wgb0Sex6Rnm1iweX687xAbjb1WATFxS_mTlmtj49aUqGChXbjjI2L-CPsigCfnhjIRSYjyddlEpPyfiSN8xdaV2D8E62j30esTwwogcFstdP3eH8LmFtYOp7jNaDUV7REQB-A__xJB1WBi68RHSsCdA7Phdyj8lQRZH47LxLUoE5Ak1kFuAaSO1mbCjeWEDDFOTv8unrAGiY7A3n_UO-TsgDoqn6eQ8GC4FI7hqsoVazCEqx47Bxhxn2T2JTODoARh4vsAbwVz8AybMNbioAlBHbZ7xMgC-KppvbZhhE3YxuSwqvNU064v0U1C1E32-2LwMadymztDCCwuofZYR1CC8yAT5dyRFENNPYlvQ8eQ79hZkl85oQ5iCwQfMGEx9PuA_h_GlaxTyS30_6aE3RlzLR8lrxLtKh3PpgfKM4S0_Q5zzbL6ppbWhCXS8XD1cdbgdIEsCWeDgohzGAP2XaRdXOhbL6rXvZp1Zdd79E-oyhHRCjTGgENCIicOUvUdrOe7zdvzu33JeQWRkussnEJrz73WOL91wf0WPkx76GIw5G9T68J5P6NWKVqvj0xIe8qbcxIr4k0dHuOazPR3OfhyVF0fy7c9YR6y0nwHyU6LWBF97yAxdvcJrJFeZxw0mzda3TI5c-AV0Wn7G1eIB8A8-Wr0GNqeZMyzi0ekbKBLOaWR5DY1qGGdz-mbWC5GKTeDJ8RLCVhSCeXT33McQ37gRv_f_EZi1m_GvtjMp1mSnK6rH6BaAJtsrJWsIlBHpyDgigul7xgcCfh7aLppxrFwYDUEAxkkM_H0SwVCsOfUq0cnapo8ilPDx_EXFNXkV49J0giemhTtNqA6_jO5seD4eNKXCGrHIrsh0nb1vQSkYVGRiPHz_DnqdgnSa0cCONreuncG6n4ItJxmKWUjFLd3KqdP4pUeiH7vDZb_Kk0tGJWl9OBp5RFm29mWhTz6A6WnzIHdGQRjS65yBhkAl0zuwY9swbbF3nW9G_TuKI-i99rNMjfkT2mhBN762VKIWGouBX_2ECaj7vqUMH6LYCozyBetjtGr84B6pchvLybZVjLt5nSAkXX1Ab31XHwxiWGs0k7vmpxjYsOkyxdnCQWnEvQnGVxAem_3zhR0VUhv8CWmLCPwYujgxOLuIw9dS4Ddcba5h1fdTpUFWzAWapthTB1bXPW7OuSnvVkevKoT--gIAXV1NHF3DMKL43jxY_Ty0S748szgXA6nD91oYF2MRN9Os0VVBYW-DdjcdzgKgGm6L56kf5qCmVSpwQqADXc1L1oqGXF-fHNLt8FYIF0pLys1FraF0HRK-UlgjsOsMvi786cBj74aJ57_b_d_8vj0ve_fl0pjcJ5TniDP3i4peXE-e_La1phaIvFHVCAnbJBZGKqTE-DayFhuxui0WsfbpM-r6etA6pkK0lNVZiuySDggswxapjK0ooeFt7dFPKvWX3OLVkJ8t-gnV4vekJezxPNJLlVvLm3Y0_Piu64HIL_XEbvoF1lTpDD1r__OyqqoaWlWJg-AO8htc5Q8Ap9jww1Zib34YwznAm2SUUUtcW-fpgvnb6KAv5r1ohvx9femNhL37PzwwfvFls5fSeyDX7EwN6lj31JN9pzM0ho35ezAeVVXjeUNjnG1jKb84sMrnxNHNBy640TONOIBCVH-FKdJHV5pb1Ja6ZP6twUho7YXvLj3grt_81WNrFONeH6Tzx42YiemKEYNvt8GFhEwYHf8jKuLLCec7fAqbE3vnDFQPqnTJNDjF98jkavmSf5NSjWFEkeWjQBh6zQXL1iQazt9VsUS4oWBIq8HKETwocWsqin2p2Z3ou-lNEsXnvUp2pWa3SINAlv6xLJncjfsJUoAdO_2rUgyLSSatqnPYKbqlPIrjUOFY2q02zwYuz7Lk9eXR6AewrCYxq2Qu0F4Dn7k5RpA_kZXKRo6hp_IxFhS2SB6rI0JS4_KXkJsuQQHLhE3qiAfle90AQoA2afnz3t-Ft2V7fJI02wB9_aFPlQzBpUMi51QGV4Lc3yjiEK3bSATjHhBxAXopwNP7Rv_hGSDzX2GQUznKXIhkWbr_qqUnTxkASef8cEGxtwjrOmmsuLHH4g0mCEEQyLWYqFPd7U9Qm4fysOkFfWD2LUYJdpBV4XfVcCtWKYFoFCQHOWC-_Sj4zMtPSqOeq2ux2cRJxm3-dmyLFBS5CY7-RP_OXANvNU7i9KnRjQRyNG0BjPDuQBuiGq5OEtTu5AucWa9MG6sPlSTv5YL5AbhHaTSf8r1b3nwGjCZ87qZYZHjBTzuzDPkdM76huzew_pw39s-PyeCAmA7RMGzOcpPjAbED0Z0ntqmAEKzKZ1E-0rjYdZR-3Mkd1Xg7s82VyQS18ZFfxfEsp5j5ry3YcZ0DCHgsrVSadzrUYCy6axKgaFjcv2zphDAILrXlidw5_eCFqQOdvd_ZJia4yjndNehFe4oRy9e-SQDReYWe1XTOqy4YkEnzTYGbkKj7jf-IfB-TRg8nKWsFk7gT-G6TwBmYnbnYFDacYBNg8qT4M3HZewtvLFICZN_oSXQXzqgrZrOXue_pbpgZyfvu5Rk5PTtM6aFRd4MM_4b5tsnaOkqz1QEI7xPw7rf51mYV3zjk8GZujFefYHij8E_xFfnUbtLvJgKKQqwObe0jYor6RiFdUz5vMCdhAj27Sr7hVr1Jhwc3WxjZAwgW7I3CmTBEO790dOZuHf-NwNIXucbp3oLrNEgV1NvxTb0U4763J5fkSJenMp4Ru1S_9i0y7KWN1v7evhWhIgNXvmUEQ49nAM1Nw5zIdvoLRLTvrAJJXrrCbLtEOb0VIWtjoSaEM90pOF48D3tqsG30GH2SIbhyFDaG5lErxLt1G3BXy72k3Rdcq-aIYgHFA3rXw48fZ80yp0rUTEzIl4s-Yw1YkWcjAvaM6eYBT39MGRqd
|
model_takemura.py.enc
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
gAAAAABl63JXe3SJN6soOnZgMrR_56-D33bu9S7Ie-wxUkVXw_jajTx_6HDkuviIMRDz4qSr-h7kFMqhDXOQFYMwpTFIrJlmSnLwAkZ5B9GkJXIu65m-Lk7fH-aHd_L0E91YULaDxpRy93yQCgsbvLXMC00KnLBGaSDwycjdi7BIK_GcqbARkyTCGlzU92Gy2W8x02FkSp7ye6s7qj_CQpNr6QuNkty9voGmVuVTp09ywKWwccSV5GydT7Ej1EoqaUHAzFkq83p-zEJQBpDnW6zzgu-A1cu764_R87lm6Ev3LvZA6Y24erNUQuU_1EJ3LsoIQfnwAyZZcI1hV_c3Krk6Fgw94AxpSmIIPe2Y0dqKYW1Neea62IRpvzXdgd8u_J_sE_vp7VTNSgCEoPSgGh38xpWCq9U7vz0oWNaHa2LW0gkZXEDfH78K4OfnKGVUIQnwfoJmSlpH_pLJa-p9whQZL1uUc9wwAyMA-OobKJXgOWji6yzbtlmgb3lBGpWlJUuC-uzMh8HMMkMvcUor1mOviobst59bqHHXqB4b_VBoowlCo4AiA5GRQRatTJqIeFeWtqhfb3XWLXU9AOy1LWJhBv6LJPO94EIfXt830AvlN7HBgL8i6CjnD5RFo6lphiL4wJKssWT22P-QvOMvn69FaoRIzChkLPZd1JfdrCXH5XG9-9K16xqDTqqX4ySE4sehi7ryvbvJ5vWLDxKhdbSpykyGGnAXTXHvyHHHU1-lJfCO9Z-ehQVO-TWXipCG8mbYDHypIqMNvy-FgKbm6DdAuP_-haKRjDs3IEzKhLNIUD70djr6K4xA5xWwYwQ7WQ-gSnM2xmyKzdv_HRrwLSK-uW7YZYa1sTyGbgFUxr81YCdkvLliES6fmXHCQ0_85yPQtZLO3kkv4LKVb77cSfXHYsp0e04zVbyjOXmCKPehvISTj-9Btjx9KsjStBeXub76RFmabVb3ZbGoiUZ_uftLKIy-R-hHPRdRdNRk_QLq1NrpI_1AxJrcknntBUnWQPqqCk1JiQn19yMEDfXrmoeOapz_zBzDNVnleg7PcppcpGPnUmqA63azaQDpz4FkwjbEpgVBB-7u9hjN_LrxiW6rBHMe1BWA5o-s8oziHyYtaQT2InercB4C4-S0D3TJwm1zErZqez4_8Nlt5mzm8yzjwQQEzEKpLLQRnza8LqBoJDwipln3ESP6-8zHsiBZzZROL8caLIl9hA0l2lst-Sh8Bk2wfGYb9V6UTpOvkU9NbvQKVwjyuH6enUg6CS3XHRv7KBMmjH0bk988qbUwmjlOzoeSQGEmYeZ4CAcf0ONrq-rQS-ucU32sG9kWiCjlK1I5O_L00D0PiCRYNiOEcpLorUpghQN-GGUp4ZjZDcFshPHBZvciL1CEyjreAeaMYBp2802pD_cfteYg9GPZgvFaEh27dLTQ2jtPkP0KzFpmlEoSGJ2T21VV1Z5TYjdYu8Cinmfgy-86MtnxM5b7zk4wjACK3ygUUGdYxYhDxcvATxlgSICQ9948uqaX1bZ9vVCcOovq7b5yVGJOEaJE_s3L84CdzXw3G__XB-Uf5nClSa6EG-glOqJ6mogl2JXinVo5lgpHf5GSk_cZGpq4s_p7mTyyJ8_z2crr97EkV2QPGzxgNmfMhGYg21JKLhaN_GLSSQONxtB8Nq4aSZEMnFVk8Aj_U-LUPVshOio9si9Bt7c3NP2iS1LUtVoLfWm7QmW1mDp9EIRYxlTuOnsBQ71MNR31dTudj6CfvbP6MwnrrGgg2znpT_-DHKdDwGGn4wXaXUsoqnhEjjsDg_99i8xIaE0dYKh2SiaPcUfF9pW5JGltg_OKVFxp1quwlXn4Lw_-X_0t1uzCZRm41XhyH7nL8VQlXGYrGVau12fx7lmo_lAVObxMJPGHtJqWrajhpk1T3XKZkWKhXLqR5tmrzVudi6tIWaju__NG3VGeb3LxRxKLgwHVGgAFIgsXbWYHf_29OjVp2OkfrwVNir8zcKNTNAQM2FtbBdoKKpzlTs6YV6sggLU1-NuQ4U9ol-V159pchZz99wj3huGAp7odn8vh3nYiT2jxcyxitUEFgnauZ_4b74tkzA60_oSjd4Is52Gno_SbOQRwUUXEOkKg7oYbMYAvTb7QC_WCh9I-CJMuX4VIg9gYPJopwHj1JSEGUzWhOH9NLa-CEO3MDp3YEenHq4xdJdpUaE01kb7wP_0eW9eILQvvjjHCNjDkzpBedRefnabtXvU_nYe-z3CUB0rnmhm1YNkM9GTUxpDY4tMEoCZ3jU8Ua5yGzEytKzASTiGE7Njs0wvJz7fag1E6uVm0mAaPk7Nju7mM9D5nUq8vZ4lEm4E0hAlhvUWWACOv2M0ZZvT5pY56qqHbMlTglMXUMaWzuU47eXG0sRmdjEhnNwZq0hWB3MQSmzuaqD40RuHA3N4R9cI-5QSVB7xebpqVyeXV-JWYBu8U79mEw-Pppz2A-WV2CBmnbHxQjuDE_x6TOyuhE3Us6HuqPeHzILU81UoAy7_vv0c08UkoulGGBS5zhmuoSXbM27B-VhD1dn8xo94Kj3va2ECuePC-yQosgooJRnc24id0Fpvh2wNt47qajMQAHy6uv4NnIZWxML5fwNQSBEHAGUcj7zAfgFwkrQZ_HArbCTV9kyEikjXXt5AsbhZKZCzh5DPjeGdnfSGU3iEcZbEO29dPsKsua7YbmMfn6CNUNzHfUvWF8R3ctBEQ8WtUIiR6iCLhonvcue1QRoxkp92D4a05wXj35Chg3tZupYn-uep6p_BEF4E1zUgif6CB7YerjnKpRV0h8jMSE_UDj5V0Q7Gxvp8TxCwvpzQdvo0eEohh5XL96qBt42Z8wgr_HWVR0Juk4QHEme48aXMGp9ijs83R6up-39kGCks87ouq6R1KZcDB9sNaRGg0sonmTq66_3JfzuURQkuhDKJ3fxsw7BFW2drrM9YrDRFW2WffJ_cwXxolQWq29tYQC848pFk7Bqb8sNpSWLcjoedN8-rYY2N7BqVFOKMxUc7K9s9fMHyQpoeY-krTpW_OsS8pxo2S44A-Xlo4eDYiW69Q7wF8dioPtHPyKOGYhxC7dIsgJjFLt-7bV9W6nE9qv-X5CpaEvSZzXy3NFD-T2giwtLHy81dP1ymoIXhwElZkKRl8B-TMY5pZduV7MaqB2y_00XM_N799vKXwedSf0_x7RPW8RId-kjsOF8zrUujLntQ9F3giKFATJDje0v96A7SLpTQG4F_BMHhfb6kcrSdh86Je-yxB8ZDDIrMZyKhhI7IqTDnWXJHvkU1Sl2gG3QV37R4vTSmxXbrk5aJr3NpSs4L9WgzlEOKSJOvSJ4K39PYSkUroHApnAKS10viTG0b0ORJRTkAvFJ1TxZu9ZCYob_nWbQuUOjpvRzhAMyiJY-iLuzslN1Zvmnf1TBrh0M-7KXY3O8LMk-fTWAQRxzoWD9YT63JXYEi9CHAmIWhNXwuLUsx_bjIjp8FIAe_I0vc_DdfXQEOh8ij2ls6AwXg8MqYHf-wzaAces7bn7hb7XMUv5drQ7uXCYS1hck6X326ThLA_PHlR7HLcXm2E326pRBvXQ7Cze2BCN0kvukaoElfvvokRX2L2OyUmMk6Pj1CogHg792u_w-Xob_jTjo24hQWOVPOJCQ6Cuy5o1TknCmhzl3f5HP-l_Ljhwii1-0IBlKEYySo5BpZvYFswdbjO8cB49W4S6QifSmbFSp_hsME79HizFMiFt9wzlSUgqhPZFM-e3WTiMmw-4k5-9WMRRr72--qaOWjn46gDOzpD7H_lK2df9VuM7la4iNl2R17YNcGKCbjsIAVB2KSD1k4gV1PWEftjKuxnI1R5-acqNUaYiPUzD7RhfCyWhrywEr5e283Gn_cJ3gnMYX-d7ORzZE1Uo8rXdt61CA8hD_aClPFPlxSg-tcQ22nabzhPv7850DQrTds095fDWvY0uwqTgZPETNIH7FiEqW8eR0VvL3VA8ToyHu-YWoHAjpZppiMjBS7extyHFNc2zWHMvFNtNgugWcU33jcnXPSOZw2f0wwj02Bt47AvPbSCEGkEdNjQna-FeMkEIJ5z4Couk6G37voKIchfb-Atfxs3ur7eKecQumqEci5qTM9AVqLoFkVrHf_Edgw2EgEPFHHBC-MfH24OkGfJPzHpitCZAH6JkwfvINzk-EPOckXrC0QTrtCK6_V5OLE1EaVS0R6sgIDUJ-O3bO_6TZEdCEpOOon1kh5TgxkxMMqU3prP-WGxEINlXuP3CbBNuaa4UDCYSrbgPEpXNozKSWIHgGgKO0H3JQr8iJclWWM35ak5vZlsPMcP962uS5GL_8DF_yohya5WRRy9ztXGXKVfQWOyhOBWhYzGskUQazhLKLBEr7FFRFXyhkUjXBd8CJFkjtgXVHGJDLAwxsejkXbUDj3zl7E5XZh9t26A7gEkuYCEmSd9NeHHanR4DA-BqWsuYK0Ls0CIVhr-37kMDwrUHQq4yjacq_s6Enz9vL6Uqo9eQLI_UYd7-8aCDKUs1cVJKbqHzg83ZD7O0lqtPjbJIAKXHmf7Rqm7D_6M7gOJHaQ6YYe17uEcTWzNyPp78MQMweqX4FalZiBC89au1nMYh_iakQbhqFmu9hcOctJ9bFTzOG9kXMil2lgyMJoSjyVD9IvWLNELcuIg2e3G7a855nZNXmVxk9zCwJj8N5BONHXqgrg0XbQ4SjXLa-iLGNv6t_02i7TrsNTbxFpjzQvB9tOoeEQVGoRSUMEGK4D2bgeaa3VWfB2eap4=
|
packages.txt
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
libgl1
|
pantolon-v3.xlsx.enc
ADDED
The diff for this file is too large to render.
See raw diff
|
|
product_similarity.py
ADDED
@@ -0,0 +1,257 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# VGG16
|
2 |
+
import pandas as pd
|
3 |
+
import streamlit as st
|
4 |
+
from tensorflow.keras.preprocessing import image as kimage
|
5 |
+
from cryptography.fernet import Fernet
|
6 |
+
import os
|
7 |
+
|
8 |
+
from io import BytesIO
|
9 |
+
from dotenv import load_dotenv
|
10 |
+
|
11 |
+
|
12 |
+
load_dotenv()
|
13 |
+
|
14 |
+
|
15 |
+
dec_key =os.getenv("FERNET_KEY")
|
16 |
+
|
17 |
+
cipher_suite=Fernet(dec_key)
|
18 |
+
|
19 |
+
# Read the encrypted content from model.py.enc file
|
20 |
+
with open('model.py.enc', 'rb') as file:
|
21 |
+
encrypted_model = file.read()
|
22 |
+
|
23 |
+
decrypted_model = cipher_suite.decrypt(encrypted_model)
|
24 |
+
decrypted_model_str = decrypted_model.decode()
|
25 |
+
|
26 |
+
# Execute the decrypted model string
|
27 |
+
exec(decrypted_model_str)
|
28 |
+
st.set_page_config(
|
29 |
+
layout="wide",
|
30 |
+
initial_sidebar_state="expanded",
|
31 |
+
)
|
32 |
+
|
33 |
+
@st.cache_data
|
34 |
+
def load_data():
|
35 |
+
# Read the encrypted content from the Excel file
|
36 |
+
with open('pantolon-v3.xlsx.enc', 'rb') as file:
|
37 |
+
encrypted_data = file.read()
|
38 |
+
|
39 |
+
# Decrypt the data
|
40 |
+
decrypted_data = cipher_suite.decrypt(encrypted_data)
|
41 |
+
|
42 |
+
# Load the decrypted data into a pandas DataFrame
|
43 |
+
df = pd.read_excel(BytesIO(decrypted_data))
|
44 |
+
|
45 |
+
return df
|
46 |
+
|
47 |
+
|
48 |
+
# Read the encrypted content from model.py.enc file
|
49 |
+
with open('model_takemura.py.enc', 'rb') as file:
|
50 |
+
encrypted_model_takemura = file.read()
|
51 |
+
|
52 |
+
decrypted_model_takemura = cipher_suite.decrypt(encrypted_model_takemura)
|
53 |
+
decrypted_model_str_takemura = decrypted_model_takemura.decode()
|
54 |
+
|
55 |
+
# Execute the decrypted model string
|
56 |
+
exec(decrypted_model_str_takemura)
|
57 |
+
|
58 |
+
# from model_takemura import *
|
59 |
+
|
60 |
+
|
61 |
+
# Read the encrypted content from model.py.enc file
|
62 |
+
with open('model_hayabusa.py.enc', 'rb') as file:
|
63 |
+
encrypted_model_hayabusa = file.read()
|
64 |
+
|
65 |
+
decrypted_model_hayabusa = cipher_suite.decrypt(encrypted_model_hayabusa)
|
66 |
+
decrypted_model_str_hayabusa = decrypted_model_hayabusa.decode()
|
67 |
+
|
68 |
+
# Execute the decrypted model string
|
69 |
+
exec(decrypted_model_str_hayabusa)
|
70 |
+
|
71 |
+
#
|
72 |
+
# from model_hayabusa import *
|
73 |
+
|
74 |
+
|
75 |
+
def page1():
|
76 |
+
st.title("Ürün Benzerlik Analizi")
|
77 |
+
st.write(
|
78 |
+
"Ürün benzerlik analizi, ürününüzün fotoğrafını yükleyerek benzer ürünleri ve verilerini bulmanızı sağlar.")
|
79 |
+
|
80 |
+
image = st.sidebar.file_uploader("Lütfen ürününüzün fotoğrafını yükleyin:")
|
81 |
+
|
82 |
+
st.markdown("""
|
83 |
+
<style>
|
84 |
+
|
85 |
+
.stTabs [data-baseweb="tab-list"] {
|
86 |
+
gap: 20px;
|
87 |
+
padding: 10px/* Increase the gap between tabs */
|
88 |
+
|
89 |
+
}
|
90 |
+
|
91 |
+
.stTabs [data-baseweb="tab-list"] button [data-testid="stMarkdownContainer"] p {
|
92 |
+
font-size:1.5rem;
|
93 |
+
font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
|
94 |
+
}
|
95 |
+
|
96 |
+
.stTabs [data-baseweb="tab"] {
|
97 |
+
height: 50px;
|
98 |
+
white-space: pre-wrap;
|
99 |
+
border-radius: 12px; /* Make the tabs look like pills */
|
100 |
+
padding: 10px 20px; /* Add padding to the tabs */
|
101 |
+
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); /* Add shadow to the tabs */
|
102 |
+
transition: background-color 0.3s ease; /* Add transition effect */
|
103 |
+
color: #333; /* Change the text color to a soft black */
|
104 |
+
}
|
105 |
+
|
106 |
+
.stTabs [aria-selected="true"] {
|
107 |
+
background-color: #e0e0e0; /* Change the background color to a soft gray */
|
108 |
+
border-color: #3d5afe; /* Add border color to the selected tab */
|
109 |
+
color: #ffffff; /* Change the text color to a soft blue */;
|
110 |
+
}
|
111 |
+
|
112 |
+
.stTabs [aria-selected="true"]:hover {
|
113 |
+
background-color: #d0d0d0; /* Change background color when hover on the selected tab */
|
114 |
+
}
|
115 |
+
|
116 |
+
</style>""", unsafe_allow_html=True)
|
117 |
+
|
118 |
+
tab1, tab2 = st.tabs(["Takemura", "Hayabusa"])
|
119 |
+
|
120 |
+
if image is not None:
|
121 |
+
st.sidebar.success("Görsel başarıyla yüklendi.")
|
122 |
+
|
123 |
+
product_category = st.sidebar.selectbox("Lütfen ürün kategorisi seçin:",
|
124 |
+
["Pantolon", "Gömlek - (Test)", "Elbise - (Test)", "Ceket - (Test)", "Hırka - (Test)"])
|
125 |
+
if product_category == "Pantolon":
|
126 |
+
|
127 |
+
default_product_details = ["Desen", "Bel", "Paça"] # Assign a default value
|
128 |
+
|
129 |
+
product_details = st.sidebar.multiselect("Benzerlik için öncelik sırasına göre detay seçin:",
|
130 |
+
["Bel", "Desen", "Paça"],
|
131 |
+
default=default_product_details)
|
132 |
+
|
133 |
+
if not product_details: # If product_details is an empty list
|
134 |
+
st.sidebar.error("En az 1 özellik seçilmelidir.")
|
135 |
+
|
136 |
+
with tab1:
|
137 |
+
if st.button("Takemura ile Analiz Yap"):
|
138 |
+
status_placeholder = st.empty()
|
139 |
+
status_placeholder.status("Analizi yapılıyor...")
|
140 |
+
|
141 |
+
filenames = model_1(image)
|
142 |
+
st.session_state['filenames'] = filenames
|
143 |
+
st.session_state['image'] = image
|
144 |
+
st.session_state['analysis_done'] = True
|
145 |
+
|
146 |
+
status_placeholder.success("Analiz tamamlandı.")
|
147 |
+
|
148 |
+
if 'analysis_done' in st.session_state and st.session_state['analysis_done']:
|
149 |
+
show_results_button = st.button("Sonuçları Göster", key='button1')
|
150 |
+
|
151 |
+
if show_results_button and ('show_results' not in st.session_state or not st.session_state['show_results']):
|
152 |
+
st.session_state['show_results'] = True
|
153 |
+
|
154 |
+
if 'show_results' in st.session_state:
|
155 |
+
image_dir = "general/PANTOLON"
|
156 |
+
df = load_data()
|
157 |
+
st.empty()
|
158 |
+
|
159 |
+
for _ in range(3):
|
160 |
+
try:
|
161 |
+
takemura_output = takemura(st.session_state['filenames'], image, product_details)
|
162 |
+
filenames = takemura_output.split('\n')
|
163 |
+
filenames = [filename[filename.rfind(' ') + 1:] for filename in filenames if ' ' in filename]
|
164 |
+
|
165 |
+
for filename in filenames:
|
166 |
+
filename_without_extension = os.path.splitext(filename)[0]
|
167 |
+
filename_without_extension = filename_without_extension.split('_')[0]
|
168 |
+
|
169 |
+
matching_rows = df.loc[df['ItemOption'] == filename_without_extension]
|
170 |
+
|
171 |
+
if not matching_rows.empty:
|
172 |
+
for _, row in matching_rows.iterrows():
|
173 |
+
cols = st.columns([2, 9]) # Adjust these values for desired widths
|
174 |
+
img_path = os.path.join(image_dir, filename)
|
175 |
+
img = kimage.load_img(img_path)
|
176 |
+
cols[0].image(img, width=200)
|
177 |
+
half = len(row) // 2 # Find the midpoint of the row
|
178 |
+
|
179 |
+
# Split the row into two parts
|
180 |
+
row_upper_half = row.iloc[:half]
|
181 |
+
row_lower_half = row.iloc[half:]
|
182 |
+
|
183 |
+
# Display the two parts in two separate dataframes
|
184 |
+
cols[1].dataframe(pd.DataFrame(row_upper_half).T)
|
185 |
+
cols[1].dataframe(pd.DataFrame(row_lower_half).T)
|
186 |
+
else:
|
187 |
+
st.write(f"No matching rows found for filename {filename_without_extension}")
|
188 |
+
break
|
189 |
+
|
190 |
+
except Exception as e:
|
191 |
+
st.write(f"Lütfen 'Sonuçları Göster' butonuna tekrar basınız.. ...")
|
192 |
+
|
193 |
+
st.session_state['show_results'] = False
|
194 |
+
|
195 |
+
with tab2:
|
196 |
+
if st.button("Hayabusa ile Analiz Yap"):
|
197 |
+
status_placeholder = st.empty()
|
198 |
+
status_placeholder.status("Analizi yapılıyor...")
|
199 |
+
|
200 |
+
filenames = model_2(image)
|
201 |
+
st.session_state['filenames'] = filenames
|
202 |
+
st.session_state['image'] = image
|
203 |
+
st.session_state['analysis_done'] = True
|
204 |
+
|
205 |
+
status_placeholder.success("Analiz tamamlandı.")
|
206 |
+
|
207 |
+
if 'analysis_done' in st.session_state and st.session_state['analysis_done']:
|
208 |
+
show_results_button = st.button("Hayabusa Sonuçlarını Göster", key='button2')
|
209 |
+
if show_results_button and ('show_results' not in st.session_state or not st.session_state['show_results']):
|
210 |
+
st.session_state['show_results'] = True
|
211 |
+
|
212 |
+
if 'show_results' in st.session_state:
|
213 |
+
image_dir = "general/PANTOLON"
|
214 |
+
df = load_data()
|
215 |
+
st.empty()
|
216 |
+
|
217 |
+
for _ in range(3):
|
218 |
+
try:
|
219 |
+
takemura_output = takemura(st.session_state['filenames'], image, product_details)
|
220 |
+
filenames = takemura_output.split('\n')
|
221 |
+
filenames = [filename[filename.rfind(' ') + 1:] for filename in filenames if ' ' in filename]
|
222 |
+
|
223 |
+
for filename in filenames:
|
224 |
+
filename_without_extension = os.path.splitext(filename)[0]
|
225 |
+
filename_without_extension = filename_without_extension.split('_')[0]
|
226 |
+
|
227 |
+
matching_rows = df.loc[df['ItemOption'] == filename_without_extension]
|
228 |
+
|
229 |
+
if not matching_rows.empty:
|
230 |
+
for _, row in matching_rows.iterrows():
|
231 |
+
cols = st.columns([2, 9]) # Adjust these values for desired widths
|
232 |
+
img_path = os.path.join(image_dir, filename)
|
233 |
+
img = kimage.load_img(img_path)
|
234 |
+
cols[0].image(img, width=200)
|
235 |
+
# cols[1].dataframe(pd.DataFrame(row).T)
|
236 |
+
half = len(row) // 2 # Find the midpoint of the row
|
237 |
+
|
238 |
+
# Split the row into two parts
|
239 |
+
row_upper_half = row.iloc[:half]
|
240 |
+
row_lower_half = row.iloc[half:]
|
241 |
+
|
242 |
+
# Display the two parts in two separate dataframes
|
243 |
+
cols[1].dataframe(pd.DataFrame(row_upper_half).T)
|
244 |
+
cols[1].dataframe(pd.DataFrame(row_lower_half).T)
|
245 |
+
else:
|
246 |
+
st.write(f"No matching rows found for filename {filename_without_extension}")
|
247 |
+
break
|
248 |
+
|
249 |
+
except Exception as e:
|
250 |
+
st.write(f"Lütfen 'Sonuçları Göster' butonuna tekrar basınız.. ...")
|
251 |
+
|
252 |
+
st.session_state['show_results'] = False
|
253 |
+
|
254 |
+
|
255 |
+
|
256 |
+
else:
|
257 |
+
st.write("Başlamak için sol tarafa lütfen ürün fotoğrafı yükleyin.")
|
requirements.txt
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
opencv-python
|
2 |
+
numpy
|
3 |
+
scikit-learn
|
4 |
+
tensorflow
|
5 |
+
python-dotenv
|
6 |
+
google-generativeai
|
7 |
+
pandas
|
8 |
+
openpyxl
|
9 |
+
cryptography
|
10 |
+
streamlit
|
11 |
+
|