Following our meeting, here are some ideas I have for the L3 structure. Basically there are only two main function: L3Train and L3Render.
function [L3_filters, idxFromClass2Filters] = L3Train(raw_patches, target_values, classDefinitionStruct)
for each raw_patch, do:
(1) compute class index (current method, automatic classification, etc)
for each class, do
(1) get corresponding raw_patches and target_values
(2) find L3_filter (Wiener, Ridge, etc)
end
function rendered_image = L3Render(input_raw, L3_filters)
in parallel for each raw pixel/patch, do:
(1) compute class index
(2) retrieve and apply filter (weighted summation)
end
There are other functions that help.
L3Train does not care how the training raw patches and target values are generated.
They can be from physical images. They can be noise free ISET patch then scaled or anything. There should be other codes to do this. Anyway, L3 software only has L3Train and L3Render.
Qiyuan says --
Following our meeting, here are some ideas I have for the L3 structure. Basically there are only two main function: L3Train and L3Render.
function [L3_filters, idxFromClass2Filters] = L3Train(raw_patches, target_values, classDefinitionStruct) for each raw_patch, do: (1) compute class index (current method, automatic classification, etc) for each class, do (1) get corresponding raw_patches and target_values (2) find L3_filter (Wiener, Ridge, etc) end
function rendered_image = L3Render(input_raw, L3_filters) in parallel for each raw pixel/patch, do:
(1) compute class index (2) retrieve and apply filter (weighted summation)
end
There are other functions that help.
L3Train does not care how the training raw patches and target values are generated.
They can be from physical images. They can be noise free ISET patch then scaled or anything. There should be other codes to do this. Anyway, L3 software only has L3Train and L3Render.