Key Interactive Voice Response systems (Key IVR), from a business point of view, are effective and reliable. The technology for these systems is ever evolving and ever developing. Companies can use them as an automated payment service or simply to refer them to the correct line to reach the relevant team. They're not just the recipients of the call, they can be programmed to dial up customers automatically and process the needs of the conversation.
An estimation from Gartner projects shows that, "By 2020, the customer will manage 85% of the relationship with an enterprise without interacting with a human". What does that tell us? It's informing us that, love it or hate it, IVR is growing and becoming more sophisticated all the time. Within 5 years the vast majority of interactions with a business, from a consumer or customer perspective, will be managed telephonically. Of course it is inescapable that many people want to speak to an actual person about their miscellaneous troubles and there are always going to be scenarios that an automotive IVR system isn't prepared for; so it's important to have a human down the line for communication too. In fact the average IVR system supplies that option 4th selection in. Starting at the beginning, the infographic below displays an IVR's average referral time to a human speaker.
It seems the majority subside after option three to speak to a human. Does this show a natural preference to speak to people as opposed to machines? Not necessarily because automation isn't always necessarily the voice of a robot. In fact many companies choose to enlist professional actors in studios to perform the voice function of their automated equipment. 74% of people prefer listening to the voice of a women apparently because people want to hear a voice that sounds to care.
IVR has something of a divide. It is suggested that 66 percent of people believe that self-service is generally more convenient. This preference is even higher—82 percent—amongst Gen Y (babies born in the 80's to early 90's) consumers. However despite this statistic that states people prefer self-service, IVR can still get a negative reception, "an overwhelming 70% of respondents ranked this as the top factor affecting their satisfaction level". So where is the problem? Is the problem that IVR is undesirable or poorly implemented? On one hand we have people telling us they prefer to do things by themselves, contrarily we have people informing us that they prefer to not interact with other people when performing things such as, checking their bank balance.
The truth is the implementation of the IVR is the issue. Many companies don't facilitate it correctly. You find they don't subside to a person easily enough. Or oppositely they can't perform basic functions, like checking your mobile phone bill. Speculatively it seems that IVR, like an organ, is a powerful instrument, if in the hands of people who know what they want from it. IVR direction should come from the customer's needs and not what the business thinks the customer's needs are, this is why many businesses record customer telephone conversations. What they learn there, they can teach their systems and adapt accordingly. Poor implementation of IVR is not without consequence, it is estimated that 81 percent of those who had a hard time solving their problems reported an intention to spread negative word-of-mouth.
In favour of IVR are the practicalities that are oh so attractive and what these systems can realise for your business. They have the power to cut down on fees. You have one payment to set up the IVR in the beginning, then maintenance. They can do the job of many employees and they do so without the temperament or erroneous nature of the human. Not to mention an IVR is never out of office and probably isn't going to ask you to call back at a later date, unless they were referring you to a person in the first place.


text:
Found: 21 Record 1-21 Search: Employment
Cooper, F. (2000)
In: Hoorweg, J.; Foeken, D.; Obudho, R.A. (eds.), Kenya Coast Handbook: Culture, resources and development in the East African littoral. Hamburg: Lit Verlag. p. 115-128.
Ikiara, G.K. (2000)
Foeken, D. (1997)
Urban Trajectories in Rural Livelihood Strategies: Household employment in Kenya's Coast Province
In: Bryceson, D.; Jamal, V. (eds.), Farewell to Farms: De-agrarianisation and employment in Africa. Aldershot: Ashgate. p. 119-136.
Mwadime, R.K.N. (1996)
Non-Farm Employment in Rural Kenya: Micro-mechanisms influencing food and nutrition of farming households
Ph.D. thesis. Wageningen: Agricultural University.
Zeleza, T. (1995)
The Moral Economy of Working Class Struggle: Strikers, the community and the state in the 1947 Mombasa general strike
Africa Development. Volume 20 #3. p. 51-87.
Colonizing Time: Work rhythms and labor conflict in colonial Mombasa
In: Dirks, N.B. (ed.), Colonialism and Culture. Ann Arbor: University of Michigan. p. 209-245.
Parkin, D.J. (1991)
Sacred Void: Spatial images of work and ritual among the Giriama of Kenya
Cambridge: Cambridge University Press.
Fleuret, A. (1990)
Migratory Wage Labor and Rural Inequality in Taita Taveta District, Kenya
In: Chaiken, M.S.; Fleuret, A. (eds.), Social Change and Applied Anthropology: Essays in honor of David W. Brokensha. Boulder: Westview Press. p. 197-209.
Walsh, M.T. (1989)
Tototo Home Industries: Assistance strategies for the future
In: Mann, C.K.; Grindle, M.S.; Shipton, P. (eds.), Seeking Solutions: Framework and cases for small enterprise development programs. West Hartford: Kumarian Press. p. 365-385.
On the African Waterfront: Urban disorder and the transformation of work in colonial Mombasa
New Haven: Yale University Press.
Aboagye, A.A. (1986)
Informal Sector Employment in Kenya: A survey of informal sector activities in Nairobi, Kisumu and Mombasa
Addis Ababa: ILO.
Kenya - Republic of (1984)
Provincial Statistical Abstract, Coast Province, 1975-1980
Nairobi: Central Bureau of Statistics.
Latham, M.C.; Stephenson, L.S.; Hall, A.; Wolgemuth, J.C.; Elliot, T.C.; Crompton, D.W. (1983)
Parasitic Infections, Anaemia and Nutritional Status: A study of their interrelationships and the effects of prophylaxis and treatment on workers in Kwale District, Kenya
Transactions of the Royal Society of Tropical Medicine and Hygiene. Volume 77. p. 41-48.
Latham, M.C.; Stephenson, L.S.; Wolgemuth, J.C.; Elliot, T.C.; Hall, A.; Crompton, D.W. (1983)
Nutritional Status, Parasitic Infection, and Health of Roadworkers in 4 Areas of Kenya (Part 1: Kwale District)
East African Medical Journal. Volume 60 #1. p. 2-10.
The Categorisation of Work: Cases from coastal Kenya
In: Wallman, S. (ed.), Social Anthropology of Work. London: Academic Press. p. 317-335.
Janmohamed, K.K. (1975)
African Labourers in Mombasa, c.1895-1940
In: Ogot, B.A. (ed.), Economic and Social History of East Africa (Hadith 5). Nairobi: Kenya Literature Bureau. p. 156-176.
Mombasa Labour Force Survey
Mombasa: Mombasa City Council.
Hino, S. (1968)
Social Stratification of a Swahili Town: The occupation differentiation of an African town
African Studies Kyoto. Volume 2. p. 51-74.
The Occupational Differentiation of an African Town
African Studies Kyoto. Volume 2. p. 75-107.
Kenya - Colony and Protectorate (1959)
Report of a Board of Inquiry Appointed to Inquire into Employment in the Port of Mombasa
Nairobi: Government Printer. p. 25.
Report of the Committee of Inquiry Appointed to Examine Labour Conditions in Mombasa
Nairobi: Government Printer.

redpajama_set_name: RedPajamaCommonCrawl


text:
<?php

// This file only include other files to have only 1 entry in your crontabs.
// ------------------------------------------------------------------------

$config_file = dirname(__FILE__).'/../../config.php';

include_once $config_file;

// Load functions
include_once SYS_PATH.'/functions.php';

// Load timezone
include_once SYS_PATH.'/core/process/timezone.loader.php';

// Load variables.json
$variables = SYS_PATH.'/core/json/variables.json';
$config = json_decode(file_get_contents($variables));
// force english language for all cron stuff
$config->system->forced_lang = 'en';

// Manage Time Interval
// #####################

include_once SYS_PATH.'/core/process/timezone.loader.php';

// Load Query Manager
// ###################

include_once __DIR__.'/../process/queries/QueryManager.php';
$manager = \Worldopole\QueryManager::current();

// Update dashboard data
// the following files are updated every run
$gym_file = SYS_PATH.'/core/json/gym.stats.json';
$pokestop_file = SYS_PATH.'/core/json/pokestop.stats.json';
$pokemonstats_file = SYS_PATH.'/core/json/pokemon.stats.json';

if (is_file($gym_file)) {
    $gymsdatas = json_decode(file_get_contents($gym_file), true);
}
if (is_file($pokestop_file)) {
    $stopdatas = json_decode(file_get_contents($pokestop_file), true);
}
if (is_file($pokemonstats_file)) {
    $pokedatas = json_decode(file_get_contents($pokemonstats_file), true);
}

$timestamp = time();
$timestamp_lastweek = $timestamp - 604800;

// Trim all json stats files to last 7 days of data
$gymsdatas = trim_stats_json($gymsdatas, $timestamp_lastweek);
$stopdatas = trim_stats_json($stopdatas, $timestamp_lastweek);
$pokedatas = trim_stats_json($pokedatas, $timestamp_lastweek);

// Update json stats files
include_once SYS_PATH.'/core/cron/gym.cron.php';
include_once SYS_PATH.'/core/cron/pokemon.cron.php';
include_once SYS_PATH.'/core/cron/pokestop.cron.php';
if ($config->system->captcha_support) {
    include_once SYS_PATH.'/core/cron/captcha.cron.php';
}

// The following files are updated every 24h only because the queries are quite expensive
// and they don't need a fast update interval
$pokedex_rarity_file = SYS_PATH.'/core/json/pokedex.rarity.json';
$nests_file = SYS_PATH.'/core/json/nests.stats.json';
$nests_parks_file = SYS_PATH.'/core/json/nests.parks.json';

$migration = new DateTime();
$migration->setTimezone(new DateTimeZone('UTC'));
$migration->setTimestamp(1493856000);
do {
    $migrationPrev = clone $migration;
    $migration->modify('+14 days');
} while ($migration < new DateTime());
$migration = $migrationPrev->getTimestamp();

if (!is_file($nests_parks_file) || filemtime($nests_parks_file) - $migration <= 0) {
    file_put_contents($nests_file, json_encode(array()));
    file_put_contents($nests_parks_file, json_encode(array()));
    touch($nests_parks_file, 1);
}

// Do not update both files at the same time to lower cpu load
if (file_update_ago($pokedex_rarity_file) > 86400) {
    // set file mtime to now before executing long running queries
    // so we don't try to update the file twice
    touch($pokedex_rarity_file);
    // update pokedex rarity
    include_once SYS_PATH.'/core/cron/pokedex_rarity.cron.php';
} elseif ((file_update_ago($nests_parks_file) >= 43200) && (time() - $migration >= 43200) && (time() - $migration < 86400)) { // extra update 12h after migration
    if (is_file($nests_parks_file)) {
        $prevNestTime = filemtime($nests_parks_file);
    } else {
        $prevNestTime = 1;
    }

    // set file mtime to now before executing long running queries
    // so we don't try to update the file twice
    touch($nests_parks_file);
    // update nests
    $nestTime = 12;
    include_once SYS_PATH.'/core/cron/nests.cron.php';
} elseif ((file_update_ago($nests_parks_file) >= 86400) && (time() - $migration >= 86400)) {
    if (is_file($nests_parks_file)) {
        $prevNestTime = filemtime($nests_parks_file);
    } else {
        $prevNestTime = 1;
    }

    // set file mtime to now before executing long running queries
    // so we don't try to update the file twice
    touch($nests_parks_file);
    // update nests
    $nestTime = 24;
    include_once SYS_PATH.'/core/cron/nests.cron.php';
}

redpajama_set_name: RedPajamaGithub


text:
Dance Music Podcast
Political Blog
My Version of House (Progressive House)
This is my version of house. I know, I know, its not your version of house. But that's fine! Because this is my version of house.
1. Ananda Project - Falling for You feat. Terrence Downs (GPal's Child of the Sun Rmx)
2. Sander Kleinenberg - Triple Seven)
3. Wamdue Project - King of My Castle (Juan Diaz vs. Alex Gomez + Doneyck Rmx)
4. Ben Watt - Tracey in My Room
5. Kings of Tomorrow - Finally (Sandy Rivera & Simon Mattson's 2011 Rmx)
6. Adele - Rumor Has It (DaSoul +Fabry Diglio US Touch)
7. Cevin Fisher vs. Guitarra G - The Message in da G Club (Whalen Remash)
8. Danny Tenaglia - Bottom Heavy
9. Jody Wisternoff - How You Make Me Smile feat. Pete Josef (Celsius Remix)
10. Funky Green Dogs - Reach For Me (Whalen's 7 Minutes of Mashup Remix)
11. Oscar G + Stryke - Hypnotized (Oscar G. Sapce Miami Rmx)
12. Cirque de Paris - Know You (Erick Morillo Vocal Rmx)
13. Sterling Void - It's Alright (Ralphie Does the Bizness Rmx)
14. Barbara Tucker - I Get Lifted (David Tort Rmx)
15. Robin S - 100% Pure Love (Whalen's 125 Rmx)
All tracks purchased legally and then heavily edited by me.
In Old Skool + Classics, Progressive House Tags progressive house, house, classics, summertime
The House Music DJ
My Story So Far...
A flyer found. A map point located. A warehouse discovered. A threshold crossed. One night. One moment. For me, nothing would ever be the same again.
What is it about electronic music that captures us so? Why is it that, once found, it grabs hold and refuses to let go? And why is it that nearly all of us sharing this scene together can name the exact moment when it made everything change? For me, December 31, 1991 is that moment. Before, the path of my life had been headed one way. After, well....
In the beginning, I was nothing more than a dedicated punter, one of the East Coast faithful, traveling hundreds of miles each weekend in pursuit of the perfect beat. Thursdays at Baltimore's legendary Fever. Fridays at DC's immortal Buzz. Saturdays at one-off's with names like Catastrophic, Storm, Ultraworld, or Primary. We were in the right place at the right time - the birth of a scene, a music, a movement.
Along with the flyers I collected the music. Guerrilla. FSOL. Limbo. Cosmic Baby. Stress. Leftfield. Platipus. The soundtrack of the weekend became the soundtrack of my life, and at first it was enough to let others arrange it, but then...
This was the era of the mixtape, a time before the Pro Tools perfect, studio session solid CD. Sets were played, recorded, and trade - passed hand to hand among the faithful, with no DJ too big or small to be worth a listen.
Although I loved the dancefloor, I started someplace that might surprise you: downtempo. Yes, downtempo. Back then no event was complete without the "Chill Room", and it was there I found my first source of DJing inspiration. One tape, two tapes, three tapes, more... I only gave them to a few friends, but these things, they have a life of their own. It started small - gigs in Richmond , DC, Baltimore, New York. I was paying my dues. And then....
Washington D.C.'s Buzz presents Supersting. The greatest collection of talent that had ever been assembled on a single night in these United States. Sasha. Carl Cox. Scott Henry. BT. Laurent Garnier. LTJ Bukem. And in the Cloudwatch Chill Out Tent, among others, Babylon - a.k.a. Alex Whalen. I wasn't on the main stage. Far from it. And yet I had to ask myself: "is this DJing thing for real? Could it become my life?"
Truth is, if you ask anyone who knew me, it already was my life. From that first night in '91, sharing this music with others had been the thing that mattered most. Whether it was making mix tapes, opening my own mail order record shop, or spending countless hours trainspotting tracks, nothing mattered more. But somehow, until that summer night in '96, the idea that it could happen to me, it was something I didn't even allow myself to dream.
Newly inspired, I poured myself deeper still into the music, shifting focus from the chill room to the main room. The scene grew, expanded. Nightclubs became superclubs, DJ's superstars. The underground was going global.
With my turn towards the dancefloor I knew there would be yet more dues to pay, and pay them I did. More tapes changed hands, more connections were made, more sets played, and then...
A return to Washington, D.C.'s Buzz. Only this time it was the main floor. Me, my records, and 2000 of DC's most devoted. Eight years chasing the beat and it was here. And an amazing thing happened: what was meant to be an opening set suddenly became much more. The headliner's records were lost en route, and I was asked to stand in her stead. Sounds like the stuff of legend, I know, but it's true. 4 hours later and my career had begun. Honestly, I can still remember that moment as if it happened just last night.
Over the next few weeks offers to DJ came fast and furious - from Buzz and beyond. And then, soon after, an offer that would once again change everything: the Deep Dish boys were looking for someone to manage their new record shop and web site, and my name was on their short list. The dream of living this music full-time suddenly became a reality.
Over the next three years I spent all of my days and nights working to build The Yoshitoshi Shop and Yoshitoshi.com. In Washington D.C., together with the seemingly unstoppable Buzz, our shop became synonymous with everything dance. On the Web, our shop went global - and I went along for the ride...
East Coast. West Coast. Hawaii. Ibiza. A residency was offered, and then a second. The first came from D.C.'s Club Five, a new purpose built venue looking to build a night. Together with DJ Buster I took over Saturday nights, for over a year playing to the faithful, a thousand strong and up for anything. As a DJ, it was my chance to stretch my wings, to make a night my own, to define my sound. Club Five was a turning point, one that prepared me for...
...the second offer. Buzz was offering a monthly residency to Dave Ralph, and they were looking for someone to share the bill. A DJ who could set the night, establish the sound, prime the crowd. Dave had his list of names, Buzz had theirs. In the end I was offered the slot, and for the next two years our monthly was one of the highlights of the DC clubbing calendar.
More importantly, perhaps, it also became the launching pad for a close musical partnership, one that lasts right up to this day. With the success of our night at Buzz firmly established, we took to the road, touring North America in support of Dave's 'Naturalized' CD. Soon after we hit the studio, producing several tracks under the Ralph + Whalen moniker.
It was time for a change. DC, Buzz, Yoshi - they'd been great to me - more than I'd ever hoped for, in fact - but it was time to go. 100 boxes of records and 3000 miles later I found myself setting up shop deep in the heart of San Francisco. Throughout my travels I'd been blessed to meet a number of amazing people, but SF has more than its fair share. It was the only choice.
Over the next two years I added syndicated radio to my arsenal as a resident for Thump Radio, helped launch a new house music venue for Blowfish Music, and headlined for both Spundae and Release - quite an accomplishment if you know the SF scene. With two like-minded musical souls, Kramer and Nicholas Baker, I started a new monthly called Arrival, an ongoing night dedicated to breaking new talent in SF's progressive house scene. And of course, throughout the world, I continued to travel and spread my brand of progressive house.
Us DJs, we're nomads, never content to stay any one place very long. SF had been great, but it was time to move on. The legendary Avalon in Boston was calling with a new offer. A new residency. A new dancefloor. A new sound.
Boston does clubbing differently: Open at 10, close at 2. Bring it early, bring it often, and above all else, bring it hard. Open right and they'll reward you. Make one false move and you may never live it down. But Avalon wasn't my only home in Boston. In a twist for a DJ, I decided to take on a new role - a PhD candidate in Boston University's Department of Political Science. What can I say? I'm a kid fom DC. Politics must be in my blood.
For three years I tried to keep things in balance, but eventually something had to give way. And then...
Everything changes. Everything comes to an end. For Boston and for Avalon, that day had finally come. After a 15 year run the club had been sold, its doors closed for good. What now? What's next?
Every challenege presents an opportunity, and for me it meant a chance to find balance. That's right, the unthinkable happened. The DJ chose to put books before choons. I passed my classes. I aced my comprehensive exams. And now I'm knee deep into my own research, working hard to determine how and why communications technologies drive change in the political world.
That itch. It's back. Time to deliver a new sound. Is Drum & Bass the new progressive? Is progressive the progressive? And woah... check out what the downtempo world was doing while I was looking the other way.
Ableton Live was an amazing invention, but it has its limits, and some time over the past year, I feel like I reached them. There's no doubt plenty more to learn if I wanted to use it for Live performances, but with the way I play, that just doesn't make any sense. For awhile here, that meant I wasn't recording mixes as much, but let's be honest here, that's a MUCH worse direction to go. So after having spent a very long weekend playing on a new DDJ-1000 with some friends of mine, I decided to go out and pick one up myself. And WOW is this thing FUN. Expect a much MUCH more regular schedule of mixes here starting right....about...NOW


Dry January has been an opportunity for all of us to cut our liver some slack by abstaining from alcohol after a potentially alcohol-heavy Christmas period. However, cutting out alcohol for a month will have done more than just give your liver a break- it will also have massively improved your oral health as well! Drinking too much alcohol can contribute to a myriad of oral health issues, from tooth decay to mouth cancer, so it's really useful to know exactly how alcohol disturbs the balance of your oral ecosystem, and why reducing alcohol consumption over the course of 2019 might be something to consider.
The most significant way in which alcohol affects your teeth is through the erosion of your enamel- many alcoholic drinks are highly acidic, making it easy for your enamel to be stripped away, leading to issues such as sensitivity, tooth decay and potential gum disease. As we all know, alcohol can leave you very dehydrated, and this has ramifications for our oral health too! Saliva production is heavily reduced when dehydrated, which is a problem as saliva protects our teeth from decay through neutralising harmful acids- without saliva, our teeth are defenceless against decay.
One of the largest contributing factors to tooth decay and other oral health issues is simply the neglect of a regular oral hygiene routine. It can be easy to forget to brush your teeth after a night of drinking, or when feeling a little worse for wear the morning after, yet maintaining a regular brushing schedule is essential if you value your oral health. In addition to this, studies have shown that drinking an excess of alcohol greatly increases the risk of contracting mouth cancer- and if you tend to smoke when you drink, the chances of developing the disease become 30 times more likely! As mouth cancer is one of the few cancers that is on the rise, understanding the link between alcohol consumption and oral cancer has become more important than ever.
These are just some of the many reasons why alcohol is damaging to your oral health, and why your mouth, as well as your liver, will have thanked you for undertaking Dry January and potentially cutting down on alcohol intake altogether throughout the year. If you are experiencing any issues with your dental health, alcohol related or otherwise, don't hesitate to give us at Strand on the Green Dental Practice a call on 020 8995 0298 and we'll book you an appointment as soon as possible.


text:
TV Junkie is a 2006 documentary that chronicles Rick Kirkham's drug addiction.

Production
Its filmmakers, Michael Cain and Matt Radecki, sifted through the video diary footage to piece together the story of Kirkham's life, focusing on the seven years in which he and his family struggled with his addiction to crack cocaine. It was shown at Sundance in 2006. The film was the subject of a lawsuit by his ex-wife Tammie.

Reception
Variety gave the film a middling review, finding the central figure unpleasant and unsympathetic and the production values inevitably low. Film Threat found it "an unbelievably candid glimpse into the contradictions of cocaine addiction", and praised Kirkham's articulate and authentic self-portrait. OutNow.CH found it had a certain fascination beyond what would be expected.

Accolades
It won a Special Jury Prize in Documentary at that year's Sundance Film Festival.

References

External links

 Official trailer
 Rotten Tomatoes

2006 films
American documentary films
Documentary films about drug addiction
2006 documentary films
Documentary films about journalists
2000s English-language films
Collage film
Sundance Film Festival award winners
2000s American films

redpajama_set_name: RedPajamaWikipedia


It is with heavy heart that I must bear sad news to you. Joe Dever's family have confirmed that the Grand Master has passed away after a brave and private ten-year battle with illness.
More than mere entertainment, he and his works have graced so many of our lives with an example of honor and goodness that has earned our loyalty, even 30 years after the publication of the first Lone Wolf gamebook, Flight from the Dark. Though his life and his quest have come to an end, his legacy will endure.
May his family and friends receive comfort in the hours and days ahead. May Ishir and Kai receive the stalwart warrior into their bosom.
For Sommerlund and the Kai!
This entry was posted in Joe Dever.
I will miss him forever and always keep his memory and the world of Lone Wolf so very close in my heart.
Your creations have been such a wonderful and powerful source of inspiration for my own creativity over these 30 years.
And when I finally met you in person, it's been a dream come true. I am forever in debt to you.
Son of a- this is not the sort of thing I enjoy waking up to. I grew up with his novels, after finding Caverns of Kalte by luck of the draw, working backwards, then forwards. I was so happy I found Project Aon after I lost those books.
We'll miss you and always cherish the world you made, Joe.
My heart is heavy today, Joe will be missed by so many. Må gudarna Kai och Ishir vaka över dig.
Thank you for getting this book-hating school kid to read for pleasure. Thank you for the memories. Thank you for allowing me to relive those memories through Project Aon.
RIP. Grew up with these books, only ever experienced the abridged US versions 1-15. Always planned to reread the series after discovering Project Aeon. Today was that day randomly enough- I came here to download the random number machine and saw the news.
I met Joe briefly at a GamesCom in 2011 and got to thank him for the influence the Lone Wolf books had on me. I probably wouldn't have found my way to pen&paper role playing without them.
Rest in peace, Joe, and thank you for drawing me into your world.
For Sommerlund, and the last few remaining Magnakais in this world.
2016 has been terrible, and it's still being relentless. His books inspired me right from the first time I read Flight from the Dark on it's release, his creation, Lone Wolf, growing up with me.
May Kai's light guide you to rest.
I woke up today to my friend's message on Mr Dever's passing. I felt like crawling back under my blanket to cry.
Like so many others, I discovered Lone Wolf in the early years of its publication as a young kid and till now, I am still as fascinated with the world of Magnamund as ever.
In Lone Wolf the character himself, Mr Dever had created the ultimate multi-classer. Rest in peace, good Sir. Ishir and Kai walk with you now.
Thanks to you Joe Dever, I rescued Banedon, and later flew in his ship Skyrider; I mistakenly slew Ganon and Dorier in a rage; and I fought barbarians in the icy wastes of Kalte. And thanks to your generosity to Project Aon, I got to do it all over again. Your imaginative creation shapes the way I play D&D to this day. Thank you so much.
Goodbye Joe; an inspiration – both through your work, in the way you treated your fans, and inadvertently the creator of a community of some of the most wonderful gamebook/RPG loving people I've had the pleasure to meet.
Today the flags fly at half mast in Sommerlund. Rest in peace, Sir.
Rest in peace ! You passed away too young, but your sagas shall endure ! THANKS !
Joe was a good friend, a great man. I had the pleasure to work with him on Sommerlund, the Magnamund Bestiary and sat on him with a panel this year at UK Games Expo. His knowledge on a great many subjects was legendary. He was a warm guy, a true gentleman and he will be sadly missed.
I'm heartbroken to hear this news. The Lone Wolf books provided such direction and enjoyment in my life and they helped guide me to many happy memories in my life. I only wish I could have told him how much joy his works brought to my life.
Thank you Mr. Dever you will be missed.
The first gamebook I ever reead was Flight from the Dark. This book was my key to the wolrd of heroic fantasy, and more generaly to litterature. Yes, when I was in collège (French secondary school/middle school), the only books I read apart form the mandatory books for school were gamebooks.
I still remember how excited I was when the 5th tome, Shadow on the Sand, was published — I wandered previously the Lastlands and the frozen Kalte, and I was about to explore the Vassagonia!
For all these hours of dreaming, thank you, a thousand times thank you Joe.
What a sad news. Many thanks for the books that literally changed my life.
It's a terrible day for me. I'm truly heartbroken.
But knowing that Joe meant so much for so many is good.
As with countless children of the '70s and '80s, he gave to my young self the most amazing gift of all: imagination.
The Grand Master taught us Imagination and Creativity, truly the most powerful and fantastic of all Disciplines. In developing those we can become able to face the impossible odds of life, just like Lone Wolf.
He tried to trick us all to think we could be our own heroes, but I have no doubt that mine is Joe.
For Sommerlund and the Kai.
Thank you, Joe, for your beautiful worlds and characters.
I've met you at every Lucca Comics since years, it was a dream come true.
I don't forget you Joe and thanks for all adventures…Thanks that I became a Monk Kai for many years.
"Then you notice that from every golden turret of the palace flutters a long, black pennant." Goodbye Grand Master. For Sommerlund and the Kai!
In Loving Memory of the first Kai Grand Master.
We all dreamt the world he wrote for us.
May Ishir guide your steps towards the house of God Kai.
His name shall always be remembered. Hail to the Grandmaster!
I grew up with his books. It was at the end of the primary school that I discovered Lone Wolf and I was hooked! Recently I re-discovered the pleasure of playing his gamebooks (with no cheating this time!), they are some kind of masterpiece and I think they managed to win the "test-of-time" .
What a dark day for gamers worldwide. My sincere condolences to Joe Dever's family and friends in their hour of need. It's a terrible, tragic shock when our loved ones depart from life. The author of Lone Wolf has passed from this world into legend.
Both Lone Wolf and FF were an avid hobby of mine – I must confess being late to the gamebook party as I didn't start collecting until 1987. Nevertheless, I'm grateful to Joe Dever's gripping and comfortable writing style as a key contribution to my progression from gamebook collector to gamebook writer. Such adventures were a sheer joy to read, the world of Magnamund an intriguing board upon which the pieces moved in momentous ways. I also hope pray the dread, destructive disease of cancer will soon be purged from this world. But we must also remember that, during his time on earth, Joe Dever made such an impact in both music and the fantasy genre. As in Lone Wolf, he would like to be remembered for his character, personality, and achievements by leaving behind a legacy that all fans may share and promote his ideals. Let that stand testimony to the monument of his life. Posterity rings down throughout the ages. For now we must mourn the loss of a Grandmaster in Gaming. Rest in Peace, Joe Dever. You will be remembered in our hearts.
My childhood was filled with memories of Sommerlund and the Kai. Section 350 will be forever the way I seek in life no matter how arduous the journey is.
I thank Joe Dever for the wonderful memories and he will be sorely missed.
Kai and Ishir take you to your rest, Grand Master.
I am forever grateful for him opening the door to RPGs to me.
This hurt. My friends and I all read the Lone Wolf books in junior high. They were my introduction to RPGs and gaming in general. You have no idea how great it was to have a book and a game I could escape to on my own. Reading and rolling dice, that was my childhood, and Joe Dever was a huge part of that. This was sad news.
So sad. Joe Dever was an inspiration for so many, and his living, breathing world was the most fantastic in fantasy. RIP Grand Master.
Man…very sad to hear this. I got my first LW book Jungle of Horrors when I was 8 in '87…became hooked and collected all the rest. I still have the whole set and brought them over to the US with me when I moved from the UK a few years back. Sad sad news.
I too have fond memories of the Lone Wolf series. RIP Joe.
Vale Joe Dever – a true visionary.
Magnamund will never be the same without you.
Thank you for many years of happiness and unlocking the joy of imagination.
I have just learned about the dismal news. I am… dejected, to say the least. Just think of the coincidence… I hadn't thought of Joe's works for weeks, but not even twenty minutes before discovering that Joe had died, I was thinking about one of his books and about the late Brian Williams, with intensity. What can I say? I grew up reading and playing his books, as a teenager, in Italian; then as a grown man, in English. I have participated in various dedicated forums, I appreciate Project Aon a great deal and… well, I could write a plethora of words, but it would not do him justice. I deeply admired Joe Dever and his world. This is it. The Magnamund is inside me, it's part of my culture. I bid you farewell, Supreme Kai Master, with the utmost gratitude, admiration and sincere grief. No rhetorics here, I assure you. May Kai and Ishir accompany you during your journey, Joe. For Sommerlund and the Kai!!!
It was Joe that let us avenge our slain warrior kin, wield the mystic Shianti arcane arts, and guide survivors from Texas to California. Some of those stories I found in used bookstores, the others because of his generosity to the nice people of Project Aon. Even though the New Order adventures may feel incomplete without him, there is a certain confidence for those that continue where he left off.
That confidence comes from the second New Order book, wherein the passing of Elder Magi Casis can be witnessed by you and Lord Rimoah. It's what Rimoah said after the ceremony was over; even as the past (the Elder Magi) fades away, the present (the New Order Kai) keeps the legacy alive for those in the future. Certainly a parallel between Joe and those that appreciate his works, no?
Thanks for the adventures… and if you ever run into Naar, give him a kick to the stones!
Lone Wolf was one of my favourite gamebook series, and I was a huge gamebook nerd in my 80's teenage years. My copy of Flight from the Dark (one of the very first gamebooks I wanted for my birthday, a few years after Warlock of Firetop Mountain) got awfully damaged after a year or so because I kept going through it again and again. A few years later, I rode hilly miles on a bicycle just to find a bookstore where they sold the latest book (I cannot remember if that was The Cauldron of Fear or The Dungeons of Torgar; for some reason I seem to mix the two up).
I can still remember the elation from Shadows on the Sand when I witnessed the facedown between Zakhan Kimah and Darklord Haakon, and then later when the Sommerswerd destroyed the latter.
I sneered at Roark's folly, shook my fist at Zahda's villainy, got revolted at the need to kill Halgar because I lacked Invisibility (and promptly died afterwards, choosing another path), exhaled with grim satisfaction after avenging Grey Star by killing the Chaosmaster (yes, well, maybe I more or less guessed where those 0s were during the fight), had a huge grin at the showdown against the villains of Sommerlund, one-punched a frigging Drakkar dead when landing on the beaches of the Darklands, and don't get me started on the prospect of finally going after those druids that only seemed to exist to blast me in out-of-the-way places.
In a nutshell (and to thankfully borrow Matthew Lim's expression), my sad congratulations on reaching that final 350 section, Grand Master Joe Dever. You will be sorely missed.
I started reading Lone Wolf at Kingdoms of Terror and Castle Death. I received them secondhand from a friend around 1991. I found Project Aon a few years ago. I was able to read the series from the beginning. I still read from this site when I want to re-visit the world of Lone Wolf. Mr. Dever will be truly missed. Thank you for allowing your books to be enjoyed by others. Thank you to everyone who keeps this site available for loyal fans.
I've just read the bad news and i cannot believe it!
I still remeber when i discovered, back in Spain, in a little library a copy of "Fire on the Water" which i devoured.
And since then, Lone Wolf got my back all these years. Together we fought in Kalte, together we flew from Vassagonia and we both blew up the Masters of Darkness.
But this wonderful world of Epic and Magic grew with me all this time in real life too…i can't thank Joe enough for what, unknowingly, did for me!
The weekend before Joe passed I was actually re-reading Fire on the Water. I decided today to finish it up online here at projectaon and saw the sad news! I owe to Joe's books a lot of my creativity and imagination, and countless hours spent reading and re-reading books 1-20 well into my 40s. Compared to other gamebooks (and role playing games), I was hooked, the stories, the characters, the missions… Joe had a gift of writing amazing books. I hope that my son one day will pick up my collection and cherish these books just as I did when I was a young lad. RIP Joe, you were taken from us too soon.
Just heard the news yesterday, how awful. I wish Joe's family the best. A couple of mates at primary school steered me onto Joe's work almost 30 years back, and I will forever have fond memories of his gamebooks and novels. RIP Joe, thanks for the adventures.
Very sad. Lone Wolf books were my introduction to RPGs back in the 80s, I was 8 years old when I got my copy of Flight from the Dark, and a few months later I scored a box set of the original 3 book D&D from a garage sale (i wish I had kept them), and that set me off. I have kept this kinda of stuff close to my heart, playing many a game over the years, but I attribute it all to Joe Dever, and Gary Gygax, whose novels and stories made me realize there was more to reading than just reading… you could CREATE. God bless, and may Kai guide you all.
Just read the sad news! For a boy in the 80's struggling with dyslexia and hating reading, I want to say thank you for your amazing storeys without which I would not have learn to overcome my dyslexia!
Flight from the dark was the first book I ever read. It was also what introduced me to fantasy, roleplaying and using my imagination as a positive means of escaping a boring and somewhat destructive environment.
I will be forever grateful for the great moments and motivation your stories gave me.
For Sommerlund and the Kai. Farewell, Grand Master.
Very sorry to hear about Joe's passing, my condolences to his family and friends.
I have no idea how many times I played through the Freeway Warrior set of books. Ever since a part of me has always wanted to take a road trip from McKinney to California.
My soul darkened upon hearing the news that someone who forged my young mind had passed away. My heartfelt condolences to all those that had a personal relationship with the man that taught me what it meant to assess a situation and choose a pertinent course of action. The biggest gift he gave to me was a hunger for good fiction, wether it be from my friends and my own imagination or from authors around the world. My collection of Lonewolf books have rallied my resolve more than once in my battles with the Darklords of life. You, Sir, inspired me to seek the highest of my own ideals so that I may be deserving of the highest grace that Ishir and Kai may bestow. I remember the day that my world changed because someone listened enough to buy me the book I wanted. The smell of paperback still makes me think of those days.
Goddess blessed me with your talent; may she reward your gift with the grace of Summerlund. Blessed be, Grandmaster, for we were blessed with your works.
I've just read this bad bad news, I'm really sorry to hear that Joe Dever left us. I've literally grown up with his books, the first one bought by mere chance in a shop in UK, probably in 1988. I've read it (it was LW 11 prisoners of time) but it was still slightly difficult for me and my brother, so I found all the Italian translations and lived all those magic adventures we all shared. Thanks to project AON his legacy will live on. For the Kai.
Just discovered that Joe Dever has passed away.
So many wonderful hours that you have given me Joe Dever with your wonderful world of Lone Wolf. Every time I had trouble at home your world gave me an escape where I could be the hero. May you rest in Peace and your family find comfort during these trying days.
Here, in France, "Loup Solitaire" still live into my heart, twenty years later. Thanks to you, Joe, for the hero you awoke. May your soul find its way to the promise land you deserve.
It is always sad when a beloved author passes on. I tend to feel a certain kinship with the creator through the words and tales they weave. That was my experience when I was young and first came across the Lone Wolf books and it continues as such with each reading. A man that has brought many readers great joy has left the world but his books shall continue to bring enjoyment and inspiration to others.
It's been a few years since I was able to actively embrace the online Lone Wolf community. Somehow I feel that this disrespects the man who played such a large part of my formative years and informed my sense of honour and defining strength through hardship. I count it amongst my greatest regrets that I never thanked him in person.
That can't be right. It this a wrong turn, yes? Have we forgot an object from a previous book? We have healing no? Every comment should give back a point! I just can't get this news. I will make sure that I did not read it and get back another day. This is the other day and now the flood of sadness has reached me. I know, my pen is not exactly on a whole number, let me just push it up… No, this is it, his quest is over.
Long live to the Grand Master.
In a time, when money was limited and technology did not yet spawn the copy-cats the first book already gave a shining, albeit contextually gloomy and threatening, example of heroic roleplay.
My condolences come late, but I mourn the loss of someone who gave hope to the social outcasts and loser teenagers alike.
I am sorry about his passing. My best wishes go to those close to him. I have fond memories reading his stories as a child, exploring the world of Lone Wolf. My childhood was difficult at times and Summerlund was a welcome respite. Mr Dever's legacy continues on in his writings, these paperbacks I am sharing with the next generation. I am most grateful for Project Aon.
My condolences to the family. Like many here, I grew up reading and re-reading Lone Wolf during my formative years. I collected all the books (including Grey Star & Freeway Warrior) and they were my gateways into a fantasy world of high adventure. Through his books, I was exposed to concepts like courage, kindness, duty, honour and loyalty. I thoroughly enjoyed every section and page of your books and even now, just remembering my journeys to Durenor, Kalte, Vassagonia and beyond, brings a smile to my face. To say your writing has had a major influence on my life would be an understatement. Thank you Mr. Dever and may your soul find peace in the arms of Kai and Ishir.
Lone Wolf once helped a 9yo kid get over the divorce of his parents, helped him hide in the Magnamund. I have kids of my own now but I will always have your books with me. Thank you and may you find peace.
My mum recently passed away and she was the one who scratched together enough to buy me lone wolf books, she was the one who first bought me the book from an author and hero I never knew about and would never have discovered . Like some of the comments I have read my childhood involved divorce and a messy childhood . I use to hide in joes books which allowed me to expand my imagination and forever push for what's right in this world , to help people where I can and too be a good person. I still have my original 1980's books in very good condition and now also have a 9 month old son. Joes family know this that my son and probably his children will end up reading these books, to have someone that has created something that will influence generations for good means joe will forever live on. I hope you keep project aon alive for the sake of future generations. Take care from all the loyal fans in New Zealand.
As a young child, I learnt about the virtues of courage, loyalty and kindness through my adventures through Magnamund.
In my darkest days (then and now) your tales remind me that there will always, always be light at the end (Section 350). For this and for many other things, I thank you from the bottom of my heart Joe Dever… You will be greatly missed.
I have just read about this here, when I have come to play again the books. I'm incredibly sad… I'm only glad that I bought the Lone Wolf roleplay books like a year ago, just out of an impulse, thinking of giving Joe Dever some joy knowing that his work was still loved. I really hope he received some happiness from his fans while he was alive. Thanks Joe Dever and rest in peace, I will never forget the good moments you have given me since I was a kid.
I played most of the books of "Lone Wolf", but lost sight of the main site for years. Thank you Joe Dever for sharing your passion with other people and may your friends and your relatives blossom.
Thank you Joe for the memories. Thanks again for Project Aon for reliving those memories.
I was just going to rekindle some fond memories of LoneWolf and the Kai, and was utterly shocked to read this. May you rest in peace, Mr. Dever. May Ishir and Kai keep you on your journey through the Daziarn. For Sommerlund and the Kai!
Hailing from South Africa, it was with delight that I downloaded an Android app in order to play the Lone Wolf books after a 26 year hiatus. I never know what happened to the original paperbacks. 🙁 Some Darklord stole them most probably. Think I had the first four.
And I never expected to read about the passing away of a GrandMaster. His storytelling is at an end, but we will keep fhe banner of the Kai and Sommerlund flying!
Starting The Deathlord of Ixia, I stumbled upon this site. I don't know how to feel, whether to be sad of passing the Grand Master Dever, or to be glad, for he had left SO much of his work here on Earth.
But I hope, wherever Joe is, that he is happily reading these comments and smiling.
For Sommerlund, and the Kai!
I played many such books, but the Lone Wolf were definitly the best ones (although I enjoyed the talking sword and poetic vampire of Grailquest). I ve a boy now, and I was sad I lost all my books few years ago. Now I m happy to have them again here, but sad to read this old news… reading comments, I m sure those have supported his family in such bad moments, there is clear love and it went both ways. Time flies, yet his memory and work will probably outlast us.
I am late to this thread, and to Project Aon in general, but after learning of its existence I am excited to be here. I loved these books when I was a teen and am planning to go through the whole series now, in my 40s. Just stumbled over this announcement and want to thank Joe for this great series, that was both fun and a strong positive example of what a hero should be. I wonder if he made it first person so we would identify with the positive traits Lone Wolf exhibited.
Mark on New Publisher Announced for Lone Wolf Books 18-28!


text:
Q: How to get last element of an array in scala How to get the last element from array if present. In below code num contains array of elements
 var line_ = ln.trim
 if(!line_.isEmpty) {
     var num = line_.split(" ");
 }

A: Just use last:
 var num = line_.split(" ").last;

A: Last will work if the Array is not empty.  You might prefer lastOption:
scala> Array.empty[String].lastOption
 res5: Option[String] = None

 scala> "ab".toArray.lastOption
 res6: Option[Char] = Some(b)

redpajama_set_name: RedPajamaStackExchange


text:
\section{Introduction}

Hyperspectral imaging (HSI) enables measurements of the electromagnetic
spectrum of a scene on multiple bands (typically about a hundred or more), which
offers many perspectives over traditional color RGB imaging. For
instance, the high-dimensional information present in a single pixel is
sometimes sufficient to identify the signature of a particular material, which
is of course infeasible in the RGB domain. Not surprisingly, hyperspectral imaging is then of
utmost importance and has a huge number of scientific and technological applications such as
remote sensing \cite{bioucas-diasHyperspectralRemoteSensing2013, goetzThreeDecadesHyperspectral2009, manolakisHyperspectralImagingRemote2016},
quality evaluation of food products \cite{elmasryPrinciplesApplicationsHyperspectral2012,fengApplicationHyperspectralImaging2012,liuHyperspectralImagingTechnique2017},
medical imaging \cite{akbariHyperspectralImagingQuantitative2012, feiChapterHyperspectralImaging2020,luMedicalHyperspectralImaging2014},
agriculture and forestry \cite{adaoHyperspectralImagingReview2017, luRecentAdvancesHyperspectral2020,maheshHyperspectralImagingClassify2015},
microscopy imaging in biology \cite{gowenRecentApplicationsHyperspectral2015, studerCompressiveFluorescenceMicroscopy2012}, or exoplanet detection in astronomy~\cite{gonzalezSupervisedDetectionExoplanets2018}.

Information contained in hyperspectral signals is much richer than in RGB
images, but the price to pay is the need to deal with complex degradations that may
arise from multiple sources, including sparse noise with specific
patterns (stripes), in addition to photon and thermal noise~\cite{kerekesHyperspectralImagingSystem2003,
	rastiNoiseReductionHyperspectral2018}.
As a consequence, HSI denoising is a crucial pre-processing step to enhance the
image quality before using data in downstream tasks such as semantic
segmentation or spectral unmixing~\cite{keshava2002spectral}.
A second issue is the lack of large-scale collection of ground-truth
high-quality signals and the large diversity of sensor types, which makes it particularly challenging to train machine
learning models for restoration such as convolutional neural
networks. To deal with the scarcity of ground-truth data, most successful
approaches typically encode strong prior
knowledge about data within the model architecture, which may be
low-rank representations of input patches~\cite{fanSpatialSpectralTotal2018,gongLowrankTensorDictionary2020,rastiAutomaticHyperspectralImage2017,wangHyperspectralImageMixed2020,zhaoHyperspectralImageDenoising2015a},
sparse coding~\cite{dantasHyperspectralImageDenoising2019,fuAdaptiveSpatialspectralDictionary2015,gongLowrankTensorDictionary2020},
or image self-similarities~\cite{maggioniNonlocalTransformDomainFilter2013,pengDecomposableNonlocalTensor2014,zhuangHyperspectralImageDenoising2017}, which have proven to be very powerful in the RGB domain~\cite{buadesNonlocalAlgorithmImage2005}.

In this paper, we propose a fully interpretable machine learning model for hyperspectral images that may be seen as a hybrid approach between deep learning
techniques, where parameters can be learned end to end with supervised data,
and classical methods that essentially rely on image priors.
Since designing an appropriate image prior by hand is very hard, our goal is to benefit
from deep learning principles (here, differentiable
programming~\cite{baydin2018automatic}) while encoding domain knowledge and physical rules
about hyperspectral data directly into the model architecture, which we believe is a key to develop robust approaches that do not require
massive amounts of training data.

More precisely, we
introduce a novel trainable spectral-spatial sparse coding model with two layers, which performs
the following operations:
(i) The first layer decomposes the spectrum measured at each pixel as a sparse
linear combination of a few elements from a learned dictionary, thus performing
a form of linear spectral unmixing per pixel, where dictionary elements can be seen
as basis elements for spectral responses of materials present in the scene.
(ii) The second layer builds upon the output of the first one, which is represented as a two-dimensional feature map, and sparsely encodes patches on a dictionary in order to take
into account spatial relationships between pixels within small receptive
fields.  To further reduce the number of parameters to learn and leverage
classical prior knowledge about spectral signals~\cite{wangHyperspectralImageMixed2020}, we also assume that the
dictionary elements admit a low-rank structure---that is, dictionary elements
are near separable in the space and spectrum domains, as detailed later.  Even
though dictionary learning has been originally introduced for unsupervised
learning~\cite{,mairalSparseModelingImage2014a,olshausen1996emergence},
we adopt an unrolled optimization procedure inspired by the LISTA
algorithm~\cite{gregorLearningFastApproximations2010a}, which has been very
successful in imaging problems for training sparse coding models from
supervised
data~\cite{lecouat_neurips,lecouatFullyTrainableInterpretable2020a,simonRethinkingCSCModel2019,xiongSMDSNetModelGuided2020}.

Our motivation for adopting a two-layer model is to provide a
shared architecture for different HSI sensors, which often involve a different
number of bands with different spectral responses. Our solution consists of learning sensor-specific dictionaries
for the first layer, while the dictionary of second layer is shared across modalities. This
allows training simultaneously on several HSI signals, the first layer mapping
input data to a common space, before processing data by the second layer.

We experimentally evaluate our HSI model on standard denoising benchmarks,
showing a significant improvement over the state of the art (including deep
learning models and more traditional baselines), while being computationally very
efficient at test time.
Perhaps more important than pure quantitative results, we believe that our work
also draws interesting conclusions for machine learning.
First, by encoding prior knowledge within the model architecture directly, we obtain models
achieving excellent results with a relatively small number of parameters to
learn, a conclusion also shared
by~\cite{lecouat_neurips,lecouatFullyTrainableInterpretable2020a} for RGB imaging; nevertheless,
the effect is stronger in our work due to the scarcity of training data for HSI
denoising and the difficulty to train deep learning models for this task.
Second, we also show that interpretable architectures are useful:
our model architecture can adapt to different noise levels per band and
modify the encoding function at test time in a principled manner, making it well suited
for solving blind denoising problems that are crucial for processing hyperspectral signals.

\section{Related Work on Hyperspectral Image Denoising}

\paragraph{Learning-free and low-rank approaches.}
Classical image denoising methods such as BM3D~\cite{dabovImageDenoisingSparse2007} may be
applied independently to each spectral band of HSI signals, but
such an approach fails to capture relations between channels;
Not surprisingly, multi-band techniques
such as
BM4D~\cite{maggioniNonlocalTransformDomainFilter2013} have been shown to perform better for HSI, and other variants were subsequently proposed such as GLF
\cite{zhuangHyperspectralImageDenoising2017}.
Tensor-based methods such as LLRT~\cite{chang2017hyper} are able to exploit the underlying low-rank
structure of HSI signals~\cite{fanSpatialSpectralTotal2018,
	rastiAutomaticHyperspectralImage2017,zhangHyperspectralImageRestoration2014} and have shown particularly effective when combined with a non-local image
prior as in NGMeet~\cite{he2019non}.
Finally, other approaches adapt traditional image processing priors such as
total variation \cite{yuanHyperspectralImageDenoising2014, wangHybridTotalVariation2021},
or wavelet sparsity \cite{othmanNoiseReductionHyperspectral2006, rastiHyperspectralImageDenoising2014}
but they tend to perform worse than GLF, LLRT, or NGMeet, see~\cite{kong2020comprehensive} for a survey on denoising techniques for HSI.

\vs
\paragraph{Sparse coding models.}
Dictionary learning~\cite{olshausen1996emergence} is an
unsupervised learning technique consisting of representing a signal as a linear
combination of a few elements from a learned dictionary, which has shown
to be very effective for various image restoration
tasks~\cite{eladImageDenoisingSparse2006,mairal2007sparse}.
Several approaches have then combined dictionary learning and low-rank regularization.
For instance, 3D patches are represented as tensors in \cite{pengDecomposableNonlocalTensor2014} and are encoded by using spatial-spectral dictionaries \cite{tuckerMathematicalNotesThreemode1966}.
In \cite{zhaoHyperspectralImageDenoising2015a}, 2D patches are extracted from the band-vectorized representation of the 3D HSI data and sparsely encoded on a dictionary, while encouraging low-rank representations with a trace norm penalty on the reconstructed image.
The low-rank constraint can also be enforced by designing the dictionary as the result of the matrix multiplication between spatial and spectral dictionaries learned by principal component analysis as in~\cite{fuAdaptiveSpatialspectralDictionary2015}.
However, these methods typically compute sparse representations with an iterative optimization procedure, which may be computationally demanding at test time.

\vs
\paragraph{Deep learning.}
Like BM3D above, convolutional neural networks for grayscale image denoising
(\eg, DnCNN \cite{zhangGaussianDenoiserResidual2017}) may also be applied to
each spectral band, which is of course suboptimal.
Because deep neural networks have been highly successful for RGB images with often low computational inference cost, there
have been many attempts to design deep neural networks dedicated to HSI denoising.
For instance, to account for the large number of hyperspectral bands, several approaches based on convolutional neural networks are operating on sliding windows in the spectral domain,
\cite{maffeiSingleModelCNN2020a, shiHyperspectralImageDenoising2021,yuanHyperspectralImageDenoising2019},
which allows training models on signals with different number of spectral
bands, but the sliding window significantly increases the inference time.
More precisely, attention layers are used in~\cite{shiHyperspectralImageDenoising2021}, while more traditional CNNs are used in~\cite{maffeiSingleModelCNN2020a}, possibly with residual connections~\cite{yuanHyperspectralImageDenoising2019}.
Recently, an approach based on recurrent architecture was proposed in \cite{wei3DQuasirecurrentNeural2020} to process signals with an arbitrary number of bands, achieving impressive results for various denoising tasks.

\vs
\paragraph{Hybrid approaches.}
SMDS-Net \cite{xiongSMDSNetModelGuided2020} adopts a hybrid approach between sparse coding and deep learning models by adapting the RGB image restoration method of \cite{lecouatFullyTrainableInterpretable2020a} to HSI images.
The resulting pipeline however lacks interpretability:
SMDS-Net first denoises the input image with non-local means \cite{buadesNonlocalAlgorithmImage2005}, then performs subspace projection in the spectral domain using HySime\cite{bioucas-diasHyperspectralSubspaceIdentification2008}, before sparsely encoding 3D patches (cubes) with a trainable version of Tensor-based ISTA \cite{qiTenSRMultidimensionalTensor2016}.
Although this method reduces considerably the number of parameters in comparison to vanilla deep learning models, the spectral sliding windows approach lacks interpretability since the same denoising procedure is applied across different bands,
which may not suffer from the same level of noise.
In contrast, we propose a much simpler sparse coding model, which is physically consistent with the nature of hyperspectral signals,
by introducing a novel differentiable low-rank sparse coding layer.

\section{A Trainable Spectral-Spatial Sparse Coding Model (T3SC)}

In this section, we introduce our trainable spectral-spatial sparse coding model dedicated to hyperspectral imaging,
and start by presenting some preliminaries on sparse coding.

\subsection{Background on Sparse Coding}

\paragraph{Image denoising with dictionary learning.}
A classical approach introduced by Elad and
Aharon~\cite{eladImageDenoisingSparse2006} for image denoising consists in considering the set of
small overlapping image patches (\eg, $8 \times 8$ pixels) from a noisy image, and compute a
sparse approximation of these patches onto a learned dictionary. The clean
estimates for each patch are then recombined to produce the full image.

Formally, let us consider a noisy image $\y$ in $\Real^{c \times h \times w}$ with $c$ channels and two spatial dimensions.
We denote by $\mathbf{y}_1, \mathbf{y}_2, \cdots \mathbf{y}_n$ the $n$
overlapping patches from $\y$ of size $c \times s \times s$, which we represent
as vectors in $\Real^m$ with $m=c s^2$.
Assuming that a dictionary $\D= [ \mathbf{d}_1, \cdots, \mathbf{d}_p ]$ in $\Real^{m \times p}$ is given---we will discuss later how to obtain a ``good'' dictionary---
each patch~$\y_i$ is processed by computing a sparse approximation:
\begin{equation}
	\label{eq:goal}
	\min_{\alphab_i \in \Real^p} \frac{1}{2} \| \mathbf{y}_i - \mathbf{D} {\alphab}_i \|^2 + \lambda \| {\alphab}_i \|_1,
\end{equation}
where $\| \cdot \|_1$ is the $l_1$-norm, which is known to induce sparsity in the problem solution
\cite{mairalSparseModelingImage2014a},
and $\alphab_i$ is the sparse code representing the patch~$\y_i$, while $\lambda$ controls the amount of regularization.
Note that the $\ell_0$-penalty, which counts the number of non-zero elements, could also be used, leading to a combinatorial
problem whose solution is typically approximated by a greedy algorithm.
After solving the~$n$ problems~(\ref{eq:goal}), each patch $\y_i$ admits a ``clean'' estimate
${\D} {\alphab}_i$. Because each pixel belongs to several patches, the full denoised image $\hatx$ is
obtained by averaging these estimates.

Finding a good dictionary can be achieved in various manners. In
classical dictionary learning algorithms, $\D$ is optimized such that
the sum of the loss functions~(\ref{eq:goal}) is as small as possible, see~\cite{mairalSparseModelingImage2014a} for a review.
Adapting the dictionary with supervision is also possible~\cite{Mairal_2012}, as discussed next.
\paragraph{Differentiable programming for sparse coding.}
The proximal gradient descent method called ISTA
\cite{figueiredoEMAlgorithmWaveletbased2003}
is a classical algorithm for solving the Lasso problem in Eq.~(\ref{eq:goal}),
which consists of the following iterations
\begin{equation}
	\label{eq:iteration}
	\mathbf{\alphab}_i^{(t + 1)} = S_{\lambda} \left[ {\alphab}_i^{(t)}  + \eta \D^\top \left( \y_i - \D \alphab_i^{(t)} \right) \right],
\end{equation}
where $\eta > 0$ is a step-size and $S_{\lambda}[u] =
	\text{sign}(u)\max(|u|-\lambda,0)$ is the soft-thresholding operator, which is applied pointwise to each entry of an input vector.

By noting that the above iteration can be seen as a sequence of affine
transformations interleaved with pointwise non-linearities $S_\lambda$, it is
then tempting to interpret $T$ iterations~(\ref{eq:iteration}) as a multilayer feed-forward
neural network with shared weights between the $T$ layers. Following such an insight, Gregor and LeCun have proposed the
LISTA algorithm~\cite{gregorLearningFastApproximations2010a}, where the parameters are learned such that
the sequence approximates well the solution of the sparse coding problem~(\ref{eq:goal}).

Interestingly, the LISTA algorithm can also be used to train dictionaries for
supervised learning tasks. This is the approach chosen in
\cite{lecouatFullyTrainableInterpretable2020a, simonRethinkingCSCModel2019} for image restoration, which considers the following iterations:
\begin{equation}
	\label{eq:iteration2}
	{\alphab}_i^{(t + 1)} = S_{\lambda} \left[ {\alphab}_i^{(t)}  + \C^\top \left( \y_i - \D \alphab_i^{(t)} \right) \right],
\end{equation}
which differs from~(\ref{eq:iteration}) with the presence of a matrix~$\C$ of
the same size as~$\D$.  Even if the choice $\C =\eta \D$ (which recovers ISTA)
is perfectly reasonable, using a different dictionary~$\C$ has empirically
shown to provide improvements in results
quality~\cite{lecouatFullyTrainableInterpretable2020a}, probably due to faster
convergence of the LISTA iterations.
Then, given some fixed parameters~$\C, \D$, a clean estimate $\W \alphab_i^{(T)}$ for each patch~$\y_i$ is obtained
by using a dictionary $\W$, where $T$ is the number of LISTA steps.
The reason for allowing a different
dictionary~$\W$ than~$\D$ is to correct the potential bias due
to~$\ell_1$-minimization.

Finally, the denoised image~$\hatx$ is
reconstructed by averaging the patch estimates:
\begin{equation}
	\label{eq:reconstruction2}
	\hatx = \frac{1}{m} \sum_{i=1}^{n} \mathbf{R}_i {\W} \mathbf{\alphab}_i^{(T)},
\end{equation}
where $\mathbf{R}_i$ is the linear operator that places the patch $\hat{\mathbf{x}}_i$ at position $i$ in the image, and we assume---by neglecting border effects for simplicity---that each pixel admits the same number~$m$ of estimates.

In contrast to classical restoration techniques based on dictionary learning, the LISTA point of view enables us to learn the model parameters~$\C, \D, \W$ in a supervised fashion. Given a training set of pairs of noisy/clean images, we
remark that the estimate $\hatx$ is obtained from a noisy image~$\y$ by a
sequence of operations that are differentiable almost everywhere, as typical neural networks with
rectified linear unit activation functions. A typical loss, which we optimize by stochastic gradient descent, is then
\begin{displaymath}
	\min_{\C, \D, \W, \lambda} {\mathbb E}_{\x, \y} \left[\| \hatx(\y) - \x \|^2 \right],
\end{displaymath}
where $(\x, \y)$ is a pair of clean/noisy images drawn from some training
distribution from which we can sample, and $\hatx(\y)$ is the clean estimate obtained
from~(\ref{eq:reconstruction2}), given the noisy image $\y$.

\subsection{A Trainable Low-Rank Sparse Coding Layer}

\begin{figure}
\centering
\input{schema}
\caption{Architecture of T3SC : we propose a two-layer sparse coding model which is end-to-end trainable. The first layer performs a sensor-specific spectral decomposition, while the second layer encodes both spectral and spatial information.}
\label{fig:architecture}
\end{figure}

We are now in shape to introduce a trainable layer encoding both sparsity and low-rank principles.

\vs
\paragraph{Spatial-Spectral Representation.}
As shown in \cite{chakrabartiStatisticsRealworldHyperspectral2011a,
	fuAdaptiveSpatialspectralDictionary2015},
HSI patches can be well reconstructed by using only a few basis elements obtained by
principal component analysis.  The authors further
decompose these into a Cartesian product of separate spectral and spatial
dictionaries.
In this paper, we adopt a slightly different approach, where we consider
a single dictionary~$\D=[\db_1, \ldots, \db_p]$ in $\Real^{m \times p}$ as in the previous section with $m = c s^2$,
but each element may be seen as a matrix of size $c \times s^2$ with low-rank structure. More precisely, we enforce
the following representation
\begin{equation}
	\label{eq:decomp}
	\forall j \in 1,\ldots,p, \ \mathbf{d}_j = \vect\left( \mathbf{U}_j \times \mathbf{V}_j\right),
\end{equation}
where $ \mathbf{U}_j$ is  in $\mathbb{R}^{s^2 \times r} $, $ \mathbf{V}_j$ is  in $\mathbb{R}^{r \times c} $,
$r$ is the desired rank of the dictionary elements,
and $\vect(.)$ is the operator than flattens a matrix to a vector.
The hyperparameter $r$ is typically small with $r=1,2$ or $3$.  When $r=1$, the
dictionary elements are said to be separable in the spectral and spatial
domains, which we found to be a too stringent condition to achieve good reconstruction in practice.

The low-rank assumption allows us to build model with a reduced number of parameters, while encoding natural assumption about the data directly in the model architecture. Indeed, whereas a classical full-rank dictionary $\D$ admits $cs^2p$ parameters,
the decomposition~(\ref{eq:decomp}) yields dictionaries with $(s^2 + c)rp$ parameters only.
Matrices $ \mathbf{C}$ and $ \mathbf{W}$ are parametrized in a similar manner.

\vs
\paragraph{Convolutional variant and implementation tricks.}

Whereas traditional sparse coding reconstructs local signals (patches) independently according to the iterations~(\ref{eq:iteration2}), another variant called convolutional sparse coding (CSC) represents the whole image by a sparse linear combination of dictionary elements placed at
every possible location in the image~\cite{simonRethinkingCSCModel2019}. From a mathematical point of view, the reconstruction loss
for computing the codes $\alphab_i$ given an input image~$\mathbf y$ becomes
\begin{equation}
\label{eq:goal_csc}
\min_{\{\alphab_i \in \Real^p\}_{i=1,\ldots,n}} \frac{1}{2} \left\| \mathbf{y} - \frac{1}{m} \sum_{i=1}^{n} \mathbf{R}_i {\D} \mathbf{\alphab}_i \right\|^2 + \lambda \sum_{i=1}^n \| {\alphab}_i \|_1.
\end{equation}
An iterative approach for computing these codes can be obtained by a simple modification of~(\ref{eq:iteration2}) consisting of replacing the
quantity $\D \alphab_i^{(t)}$ by the $i$-th patch of the reconstructed image $\frac{1}{m} \sum_{i=1}^{n} \mathbf{R}_i {\D} \mathbf{\alphab}_i^{(t)}$. All of these operations can be efficiently implemented in standard deep learning frameworks, since the corresponding operations corresponds to a transposed convolution with $\D$, followed by convolution with $\C$, see~\cite{simonRethinkingCSCModel2019} for more details. In this paper, we experimented with the CSC variant~(\ref{eq:goal_csc}) and SC one~(\ref{eq:goal}), both with low-rank dictionaries, which were previously described. We observed that CSC was providing slightly better results and was thus adopted in our experiments.
Following~\cite{lecouatFullyTrainableInterpretable2020a}, another
implementation trick we use is to consider a different $\lambda$ parameter per
dictionary element, which slightly increases the number of parameters, while
allowing to learn with a weighted $\ell_1$-norm in~(\ref{eq:goal_csc}).

\subsection{The Two-Layer Sparse Coding Model with Sensor-Specific Layer}\label{subsec:vanilla}
One of the main challenge in hyperspectral imaging is to train a model that can
generalize to several types of sensors, which typically admit different number
of spectral bands.
Whereas learning a model that is tuned to a specific sensor is perfectly acceptable
in many contexts, it is often useful to learn a model that is able to generalize across
different types of HSI signals.
To alleviate this issue, several strategies have been adopted such as
(i) projecting signals onto a linear subspace of fixed dimension, with no guarantee that
representations within this subspace can be comparable between different signals, or (ii)
processing input data using a sliding window across the spectral domain.

In this paper, we address this issue by learning a two-layer model, presented in
Figure~\ref{fig:architecture}, where the first layer is tuned to a specific
sensor, whereas the second layer could be generic. Note that the second layer carries most of the model parameters (about $20\times$ more than in the first layer in our experiments).
Formally, let us denote by
 $ {\alphab}$ in $\mathbb{R}^{p \times h \times w}$ the sparse encoding of
an input tensor $\mathbf{y}$ in $\mathbb{R}^{c \times h \times w}$ as previously described.
A sparse coding layer $ \Phi $ naturally yields an encoder and a decoder such that:
\begin{equation}
\Phi^{enc} : \mathbf{y}       \mapsto \mathbf{\alphab}, ~~~~\text{and}~~~~
\Phi^{dec} : \mathbf{\alphab}  \mapsto \frac{1}{n} \sum_{i=1}^{n} \mathbf{R}_i \mathbf{W} \mathbf{\alphab}_i.
\end{equation}
Given a noisy image $\y$, the denoising procedure described in the previous section with one layer can be written as
$$ \mathbf{ \hat{x} }(\y) = \Phi^{dec} \circ \Phi^{enc}( \mathbf{y} ). $$
Then, a straightforward multilayer extension of the procedure may consist of stacking
several sparse coding layers $\Phi_1, \ldots, \Phi_L$ together to form a multilayer sparse coding denoising model:
$$ \mathbf{ \hat{x} }(\y) = \Phi_1^{dec} \circ \cdots \circ \Phi_L^{dec} \circ \Phi_L^{enc} \circ \cdots \circ \Phi_1^{enc}( \mathbf{ y } ).$$
The model we propose is composed of two layers, as shown in Figure~\ref{fig:architecture}.
The first layer encodes spectrally the input HSI image, meaning that it operates on $1 \times 1$ patches, whereas the second layer encodes both spectrally and spatially the output of the first layer.

\subsection{Noise Adaptive Sparse Coding}\label{subsec:band}
An advantage of using a model based on a sparse coding
objective~(\ref{eq:goal}) is to give the ability to encode domain knowledge within
the model architecture.
For instance, the Lasso problem~(\ref{eq:goal}) seen from a maximization a posteriori estimator
implicitly assumes that the noise is i.i.d.
If the noise variance is different on each spectral band, a natural modification to the
model is to introduce weights and use a weighted-$\ell_2$ data fitting term (which could be applied as well to the CSC model of~(\ref{eq:goal_csc})):
\begin{equation}
\label{eq:goal2}
\min_{\alphab_i \in \Real^p} \frac{1}{2} \sum_{j=1}^c \beta_j \| \mathbf{M}_j ( \mathbf{y}_i - \mathbf{D} {\alphab}_i) \|^2 + \lambda \| {\alphab}_i \|_1,
\end{equation}
where $\mathbf{M}_j$ is a linear operator that extracts band $j$ from a given HSI signal.
From a probabilistic point of view, if $\sigma_j^2$ denotes the variance of the noise for band $j$, we may choose the corresponding weight~$\beta_j$ to be proportional to $1/\sigma_j^2$.
Yet, estimating accurately $\sigma_j^2$ is not always easy, and we have
found it more effective to simply learn a parametric function $\beta_j = g
(\mathbf{M}_j  \mathbf{y})$---here, a very simple CNN with three layers, see supplementary material for details---which is applied independently to each band.
It is then easy to modify the LISTA iterations accordingly to take into account these weights, and learn the model parameters jointly with those of the parametric function~$g$.

\subsection{Self-Supervised Learning: Blind-Band Denoising with No Ground Truth Data}\label{subsec:ssl}
Even though acquiring limited ground truth data for a specific sensor is often
feasible, it is also interesting to be able to train models with no ground
truth at all, \eg, for processing images without physical access to the sensor.
In such an unsupervised setting, deep neural networks
are typically trained for RGB images by using blind-spot denoising
techniques~\cite{laine2019high}, consisting of predicting pixel values given
their context. Here,
we propose a much simpler approach exploiting the spectral redundancy between channels.
More precisely, each time we draw an image for training, we randomly mask one band (ore more), and
train the model to reconstruct the missing band from the available ones.
Formally, the training objective becomes
\begin{equation}
	\label{eq:goal4}
   \min_{\C,\D,\W,\lambda}  {\mathbb E}_{\x,\y,S} \left[  \sum_{j \notin S} \| \mathbf{M}_j (\hatx_S(\y) - \y )\|^2 \right],
\end{equation}
where $S$ is the set of bands that are visible for computing the sparse codes $\alphab_i$, leading to a reconstructed image that we denote by
$\hatx_S(\y)$. Formally, it would mean considering the objective~(\ref{eq:goal2}), but replacing the sum $\sum_{j=1}^c$ by $\sum_{j \in S}$.
This is in spirit similar to blind-spot denoising, except that bands are masked instead of pixels, making the resulting implementation much simpler.

\section{Experiments}

We now present various experiments to demonstrate the effectiveness of our
approach for HSI denoising, but first, we discuss the difficulty of defining
the state of the art in this field.  We believe indeed that it is not always
easy to compare learning-free from approaches based on supervised learning.
These two classes of approaches have very different
requirements/characteristics, making one class more relevant than the other one
in some scenarios, and less in others. Table~\ref{table:comp} summarizes their
characteristics, displaying advantages and drawbacks of both approaches.
\begin{table}
   \caption{Simplified comparison between learning-free and learning-based approaches.}\label{table:comp}
   \vspace*{0.05cm}
   \centering
\begin{tabular}{llllll}
   & \emph{Data req.} & \emph{training} & \emph{inference} &  \emph{adapt. to new data} & \emph{complex noise} \\
                  \hline
   {\bfseries learning-free}  & no req. & no training & slow & easy & poor \\
                  \hline
   {\bfseries learning-based}  & clean data & slow & fast & complicated & good perf. \\
                  \hline

\end{tabular}
\end{table}

\vs
\paragraph{Benchmarked models.}
Keeping in mind the previous dichotomy, we choose to compare our method to traditional methods such as
bandwise BM3D \cite{dabovImageDenoisingSparse2007} (implementation based on \cite{makinenExactTransformdomainNoise2019, makinenCollaborativeFilteringCorrelated2020}),
BM4D \cite{maggioniNonlocalTransformDomainFilter2013},
GLF \cite{zhuangHyperspectralImageDenoising2017},
LLRT \cite{chang2017hyper},
NGMeet \cite{he2019non}.
We also included deep learning models in our benchmark such as
HSID-CNN \cite{yuanHyperspectralImageDenoising2019},
HSI-SDeCNN \cite{maffeiSingleModelCNN2020a}
3D-ADNet \cite{shiHyperspectralImageDenoising2021},
SMDS-Net \cite{xiongSMDSNetModelGuided2020} and
QRNN3D \cite{wei3DQuasirecurrentNeural2020}.
Results of HSID-CNN, HSI-SDeCNN and 3D-ADNet on Washington DC Mall (available in the Appendix)
are taken directly from the corresponding papers, as the train/test split is the same.
Otherwise, the results were obtained by running the code obtained directly from the authors, except for SMDS-Net, where our implementation turned out to be slightly more effective.
Note that the same architecture for our model was used in all our experiments (see Appendix).

\paragraph{Datasets.}
We evaluate our approach on two datasets with significantly different properties.
\begin{itemize}[leftmargin=*,itemsep=0pt,parsep=0pt,topsep=0pt]
   \item \textit{ICVL} \cite{arad2016sparse}  consists of 204 images of size $1392 \times 1300$ with 31 bands. We used 100 images for training and 50 for testing as in
      \cite{wei3DQuasirecurrentNeural2020} but with a different train/test
      split ensuring that similar images---\eg, picture from the same scene---are not used twice.
   \item \textit{Washington DC Mall} is perhaps the most widely used dataset\footnote{\url{https://engineering.purdue.edu/~biehl/MultiSpec/hyperspectral.html}} for HSI denoising and consists of
    a high-quality image of size $1280 \times 307$ with 191 bands.
Following~\cite{shiHyperspectralImageDenoising2021}, we split the image into
two sub-images of size $600 \times 307$ and $480 \times 307$ for training and
one sub-image of size $200 \times 200$ for testing. Even though the test image
      does not overlap with train images, they nevertheless
      share common characteristics. Interestingly, the amount of training data is very limited here.
\end{itemize}
Specific experiments were also conducted with the datasets APEX~\cite{itten2008apex}, Pavia\footnote{\url{http://www.ehu.eus/ccwintco/index.php?title=Hyperspectral_Remote_Sensing_Scenes}}, Urban\cite{urbandataset} and CAVE~\cite{CAVE}, which appear in the supplementary material.

\vs
\paragraph{Normalization.}
Before denoising, HSI images are normalized to $[0,1]$.
For remote sensing datasets, we pre-compute the 2\ts{nd} and 98\ts{th} percentiles for each band, on the whole the training set.
Then, normalization is performed on train and test images by clipping each band between those percentiles before applying bandwise min-max normalization, similar to \cite{audebertDeepLearningClassification2019a, maffeiSingleModelCNN2020a}.
For the close-range dataset ICVL, we simply apply global min-max normalization as in \cite{xiongSMDSNetModelGuided2020, wei3DQuasirecurrentNeural2020}.

\vs
\paragraph{Noise patterns.}
We evaluate our model against different types of synthetic noise:
\begin{itemize}[leftmargin=*,itemsep=0pt,parsep=0pt,topsep=0pt]
	\item \textit{i.i.d Gaussian noise with known variance} $\sigma^2$, which is the same on all bands.
	\item \textit{Gaussian noise with unknown band-dependent variance}: We consider Gaussian noise with different standard deviation $\sigma_j$ for each band, which is uniformly drawn in a fixed interval. These standard deviations change from an image to the other and are unknown at test time.
	\item \textit{Noise with spectrally correlated variance}: We consider Gaussian noise with standard deviation~$\sigma_j$ varying continuously across bands, following a Gaussian curve, see details in the appendix.
	\item \textit{Stripes noise} : similar to \cite{wei3DQuasirecurrentNeural2020}, we applied additive stripes noise to 33\% of bands.
	      In those bands, 10-15\% of columns are affected, meaning a value uniformly sampled in the interval $[-0.25, 0.25]$ is added to them.
	      Moreover, all bands are disturbed by Gaussian noise with noise intensity $\sigma=25$.
\end{itemize}

\vs
\paragraph{Metrics.}
In order to assess the performances the previous methods, we used five different indexes widely used for HSI restoration, namely
(i) Mean Peak Signal-to-Noise Ratio (MPSNR), which is the classical PSNR metric
averaged across bands; (ii) Mean Structural Similarity Index Measurement
(MSSIM), which is based on the SSIM metric \cite{zhou2004image};
 (iii) Mean Feature Similarity Index Measurement (MFSIM) introduced in \cite{zhang2011fsim};
 (iv) Mean ERGAS~\cite{du2007performance}, and
 (v) Mean Spectral Angle Map (MSAM)~\cite{alparone2007comparison}.
We use MPSNR and MSSIM in the main paper and report the other metrics in the appendix.

\vs
\paragraph{Implementation details.}
We trained our network by minimizing the MSE between the groundtruth and restored images.
For ICVL, we follow the training procedure described in \cite{wei3DQuasirecurrentNeural2020}: we first center crop training images to size $1024 \times 1024$,
then we extract patches of size $64 \times 64$ at scales 1:1, 1:2, and 1:4, with stride 64, 32 and 32 respectively.
The number of extracted patches for ICVL amounts to 52962.
For Washington DC Mall, we do not crop training images and the patches are extracted with stride 16, 8 and 8, for a total of 1650 patches.
One epoch in Washington DC Mall corresponds to 10 iterations on the training dataset.
Basic data augmentation schemes such as $90^\circ$ rotations and vertical/horizontal flipping are performed.
Code and additional details about optimization, implementation, computational resources, are provided in the supplementary material.
As reported in Table~\ref{table:unrolling}, augmenting the number unrolled iterations improves the denoising performances at the expense of inference time.
Since the Spectral-Spatial SC layer is the most time-consuming, the number of unrolled iterations chosen for the first and second layers are 12 and 5 respectively.

\vs
\paragraph{Quantitative results on synthetic noise.}
We present in Table~\ref{table:icvl} the results obtained on the ICVL dataset (results on DCMall are presented in the appendix).
Our method uses the vanilla model of Section~\ref{subsec:vanilla} for the experiments with constant $\sigma$ or correlated noise.
For the blind denoising experiment with band-dependent $\sigma$ or for the stripe noise experiment, we use the variant of Section~\ref{subsec:band},
which is designed to deal with unknown noise level per channel. The method
``T3SC-SSL'' implements the self-supervised learning approach of Section~\ref{subsec:ssl}, which does not
rely on ground-truth data.
\begin{itemize}[leftmargin=*,itemsep=0pt,parsep=0pt,topsep=0pt]
   \item Our supervised approach achieves state-of-the-art results (or is close to the best performing baseline) on all settings. GLF performs remarkably well given that this baseline is learning-free.
   \item Our self-supervised method achieves a relatively good performance under i.i.d. Gaussian noise, but does not perform as well under more complex noise.
     This is a limitation of the approach which is perhaps expected and overcoming this limitation would require designing a different self-supervised learning scheme; this is an interesting problem, which is beyond the scope of this paper.
\end{itemize}

A visual result on ICVL is shown in Figure~\ref{fig:icvl} for stripes noise.
Inference times are provided in Table~\ref{table:speed}, showing that our approach is computationally efficient.

\vs
\paragraph{Results on real noise.}
We also conducted a denoising experiment on the Urban dataset, reporting a visual result in Figure~\ref{fig:urban}.
Deep models were pre-trained on the APEX dataset, which has the same number of channels as Urban (even though the sensors are different), with band-dependent noise with $\sigma \in [0-55] $.
Please note that for this experiment we did not use Noise Adaptive Sparse Coding\ref{subsec:band} for T3SC, as it is highly dependent on the type of sensor used for training.
We show that learning-based models trained on synthetic noise are able to transfer to real data.

\vs
\paragraph{Comments on the additional results presented in the appendix.}
The appendix also contains (i) results on the DCMall dataset including additional baselines mentioned above;
(ii) error bars for parts of our experimental results in order to assess their statistical significance; (iii) an experiment when learning simultaneously on several datasets with different types of sensors showing that the second layer can be generic and effective at the same time;
(iv) additional visual results; (v)
various ablation studies to illustrate the importance of different components of our method.
\begin{table}[t]
   \captionof{table}{Denoising performance on ICVL with various types of noise patterns. The first four rows correspond to i.i.d. Gaussian noise with fixed~$\sigma$ per band. The next three rows corresponds to a noise level that depends on the band, taken uniformly on small interval. This is a blind-noise experiment since at test time, the noise level is unknown. The last two rows correspond to the scenarios with correlated $\sigma$ across bands, and with stripe noise, respectively. See main text for details.  } \label{table:icvl}
	\input{"icvl_all"}
\end{table}
\begin{table}[t]
   \centering
  \captionof{table}{Inference time per image on ICVL with $\sigma=50$; SMDS, QRNN3D and T3SC are using a V100 GPU; BM4D, GLF, LLRT and NGMeet are using an Intel(R) Xeon(R) CPU E5-1630 v4 @ 3.70GHz. Note that unlike GLF, NGMeet, and LRRT, learning-based approaches such as QRNN3D and our approach require a training procedure, which may be conducted offline. The cost of such a training step was about 13.5 hours for our method and 19 hours for QRNN3D on a V100 GPU. }\label{table:speed}
   \input{inference_time}
\end{table}
\begin{table}[t]
  \centering
   \captionof{table}{Impact of the number of unrolled iterations per layer on denoising performances and inference time. This experiment was carried out on ICVL with $\sigma=50$.} \label{table:unrolling}
	\input{"unrolling_diagonal"}
\end{table}

\begin{figure}[h!]
  \input{icvl_25}
        \caption{Denoising results with Gaussian noise $\sigma=25$ on ICVL with bands 9, 15, 28.}\label{fig:icvl}
\end{figure}

\begin{figure}[h!]
  \input{urban}
        \caption{Visual result on a real HSI denoising experiment on Urban dataset with bands 1, 108, 208.}\label{fig:urban}
\end{figure}

\subsection*{Broader Impact}
Our paper addresses the problem of denoising the signal, which is a key
pre-processing step before using hyperspectral signals in concrete
applications. As such, it is necessarily subject to dual use.
For instance, HSI may be used for environmental monitoring, forestry, yield
estimation in agriculture, natural disaster management planning, astronomy,
archaeology, and medicine.
Yet, HSI is also used by the petroleum industry for finding new oil fields,
and has obvious military applications for surveillance.
We believe the potential benefits of HSI for society are large enough to
outweigh the potential harm. Nevertheless, we are planning to implement
appropriate dissemination strategies to mitigate the risk of misuse for this
work (notably with restrictive software licenses), while targeting a gold standard regarding the scientific reproducibility of our results.

\subsection*{Acknowledgments and Funding}
This project was supported by the ERC grant number 714381 (SOLARIS project) and by ANR 3IA MIAI@Grenoble Alpes (ANR-19-P3IA-0003).
This work was granted access to the HPC resources of IDRIS under the allocation 2021-[AD011012382] made by GENCI.

\small
\bibliographystyle{abbrv}

\section{Implementation details}
In this section, we provide additional implementation details, which
are useful to reproduce our experiments (note that the code is also provided).
\paragraph{Noise with spectrally correlated variance.}
For each band $i \in \llbracket 0, c -1 \rrbracket$, the standard deviation of the Gaussian noise is defined as :
$$
\sigma_i = \beta \ exp \left[ - \frac{1}{4 \eta^2} \left(\frac{i}{c} - \frac{1}{2}\right)^2  \right]
$$
with $\beta=23.08$ and $\eta=0.157$.

\paragraph{Preprocessing.}
A basic centering step is used for each input patch of our model.
More precisely, for the first layer, each band of the input hyperspectral image is
centered independently prior to patches extraction, and means are added
back after decoding.
For the second layer, patches are centered independently for each band (and similarly, the means are added back after decoding).

\paragraph{Code and patch sizes}
The hyperparameters of our model are presented in Table~\ref{table:model_arch}.

\begin{table}[H]
	\centering
	\input{"model_arch"}
	\captionof{table}{Architecture of our model}
	\label{table:model_arch}
\end{table}

Table~\ref{table:multilayer} shows that the combination of both layers is more performant than each layer independently.

\paragraph{Initialization}
All parameters are initialized with He initialization \cite{he2015delving}.

\paragraph{Blocks inference}
In order to apply our model to large images, we split them into blocks of size $256 \times 256$ with an overlap of 6 pixels.
Each block is denoised independently.
The output image is obtained by aggregating the denoised blocks.
Pixels comprised in several blocks are averaged.

\paragraph{Weights estimator}
For complex noise such as Gaussian noise with band-dependent variance or stripes noise, our model uses a CNN to estimate the weights $\beta_j$ associated with each band.
The CNN operates on centered patches of size $56 \times 56$ both during training (random crops) and inference (blocks inference), and its architecture is described in Table \ref{table:cnn_arch}.

\begin{table}[H]
	\centering
	\input{"cnn"}
	\captionof{table}{CNN architecture for estimating $\beta_j$}
	\label{table:cnn_arch}
\end{table}
The ablation study presented in Table \ref{table:beta} shows that this extension improves performances substantially for complex noise.

\paragraph{Optimization}
Our models are trained with batch size of 16 for 60 epochs.
We use the Adam optimizer,
the initial learning rate is $3 \times 10^{-4}$, and is divided by two at epoch 30 and 45.

\paragraph{Self-Supervised Learning}
During the training, $n$ bands randomly selected are masked simultaneously, and reconstructed from the available ones.
The MSE loss is applied on the masked bands only.
For testing, the $n$ masked bands are evenly distributed along the spectral dimension.
All bands are reconstructed after $ \lceil c / n \rceil $ iterations, where $c$ denotes the total number of bands and $\lceil \cdot \rceil$ is the ceiling operator.
We used $n=4$ for ICVL and $n=16$ for Washington DC Mall.

For the SSL setting to be realistic, the noise is added to the clean image before patches are extracted.
Otherwise, the model would have indirect access to the groundtruth by seeing the same patch with different noise realizations.
As a consequence, the denoising task is much harder on complex noise when data is limited, as shown in Table~\ref{table:dcmall}.

\section{Additional Quantitative Results.}
\paragraph{Washington DC Mall dataset.} Results for this dataset are presented in Table~\ref{table:dcmall}. Additional baselines are presented in Table~\ref{table:dcmallext}.
The conclusions are similar to those already drawn in the main paper.

\begin{table}[H]
	\centering
	\captionof{table}{Denoising performances on Washington DC Mall.}\label{table:dcmall}
	\input{"dcmall_all"}
\end{table}
\begin{table}[H]
	\centering
	\captionof{table}{Denoising performances on Washington DC Mall with additional baselines.}\label{table:dcmallext}
	\input{"dcmall_constant"}
\end{table}

\paragraph{Study of statistical significance for the ICVL dataset.} In order to evaluate the statistical significance of our results, we
present some results in Table~\ref{table:std} for some of our models and baselines, by running models with five different random seeds.
Note that we did not conduct such a study for all results in this paper in order to keep the computational cost of the project reasonable.
The conclusions of the paper remain unchanged.

\begin{table}[H]
	\centering
	\captionof{table}{Denoising performances on ICVL with multiple seeds}\label{table:std}
	\input{"icvl_multiseeds"}
\end{table}

\paragraph{CAVE dataset.}
We report denoising performances of T3SC on the CAVE Dataset in Table ~\ref{table:cave}
To evaluate T3SC, the dataset was divided in four splits : three were used for training and one for testing.
The values reported for T3SC are averaged across all rotations of the test split.
\begin{table}[H]
	\centering
	\captionof{table}{Denoising performances on CAVE dataset with Gaussian noise.}\label{table:cave}
	\input{"cave_constant"}
\end{table}

\paragraph{Joint training across heterogeneous datasets.}
In Table~\ref{table:joint}, we study the problem of training a single model on
three different datasets, APEX, DC Mall, and Pavia, involving a different
number of channels. As mentioned in the paper, this model involves a common
second layer and a spectral dictionary per dataset. These result show that most
of the model parameters (which are present in the second layer) can in fact be shared
across datasets without significant loss of accuracy when compared to the training of
three different models (thus involving three times more parameters).

\begin{table}[H]
	\centering
	\captionof{table}{Results for joint training experiment}
	\input{"joint_training"}
	\label{table:joint}
\end{table}

\paragraph{Additional metrics.}
Additional metrics are provided for the ICVL and DCMall datasets, respectively in Tables~\ref{table:metric1} and~\ref{table:metric2}.
The conclusions of the paper are unchanged.
\begin{table}[H]
	\centering
	\input{"icvl_all_metrics"}
	\captionof{table}{Additional metrics on ICVL}\label{table:metric1}
\end{table}

\begin{table}[H]
	\centering
	\input{"dcmall_all_metrics"}
	\captionof{table}{Additional metrics on DCMall}\label{table:metric2}
\end{table}

\paragraph{Ablation studies.} In this paragraph, we present different ablation studies, demonstrating in Table~\ref{table:multilayer} that our two-layer model outperforms single-layer models.
We also demonstrate the usefulness of our variant with weights~$\beta_j$ in Table~\ref{table:beta} when the noise variance varies a lot between different bands.
\begin{table}[H]
	\centering
	\input{"multilayer"}
	\captionof{table}{Combination of sparse coding layers: we denote by \textit{Spec} the Spectral Sparse Coding layer and by \textit{SpecSpat} the Spectral-Spatial Sparse Coding layer. This experiment was run on ICVL with $\sigma=50$.}
	\label{table:multilayer}
\end{table}

\begin{table}[H]
	\centering
	\captionof{table}{Our model without/with band-wise noise estimator (NE) on ICVL with band-dependent Gaussian noise and stripes noise}\label{table:beta}
	\input{"icvl_beta"}
\end{table}

\section{Visual Examples}
Finally, we show additional visual examples  in Figure~\ref{fig:1} and ~\ref{fig:2}.

\begin{figure}[H]
	\input{dcmall}
	\caption{Simulated Gaussian noise ($\sigma=100$) on DCMall}\label{fig:1}
\end{figure}

\begin{figure}[H]
	\input{stripes}
	\caption{Visual results for the denoising experiment with stripes noise on ICVL with bands 9, 15, 28.}\label{fig:2}
\end{figure}

\section{GPU ressources}
The total number of GPU hours involved in this project is around 19k hours on NVIDIA Tesla V100 16Go, including preliminary experiments, model design, final experiments and running baseline methods.

redpajama_set_name: RedPajamaArXiv


Wiz - the blade Wiz belongs to the most favourite and most widely used blades in the market. It has pre-curved heel and slightly curved tip for better shooting. Great for a technical players and those who like slap shots.